Код
Java
#База знаний

Как из обычного IDEA-проекта сделать Maven

Разбираемся с самым популярным продуктом для автоматизации сборки и мигрируем без проблем.

Maven — это инструмент для сборки Java-проектов: компиляции, создания JAR, дистрибутива программы, генерации документации. С простыми проектами можно обойтись и без него — и собирать их в командной строке. Часто так и делают, но если проект большой и сложный, команда сборки выходит очень длинной, поэтому её иногда записывают в bat/sh-скрипт.

Скрипты обычно зависят от платформы. Чтобы избавиться от этой зависимости и упростить работу, используют инструменты для сборки проекта, например Maven.

Миграция на Maven

Из любого стандартного проекта IDEA можно мигрировать на Maven-проект.

В статье используется среда разработки JetBrains IDEA Community 2021.1. Если у вас другая версия, интерфейс может отличаться.

Для этого выполните следующие действия:

  • Выберите проект или модуль, который будете добавлять в Maven, — в нашем примере это будет модуль LambdaExpressions.

  • Нажмите правой кнопкой мыши на название проекта/модуля и выберите пункт Add Framework Support…
  • Выберите тип проекта Maven и нажмите OK.
  • После этого, если ваш проект под контролем Git, будет предложено добавить файл pom.xml в отслеживание Git. Для этого нужно кликнуть на Add — ваш pom.xml сразу добавится в stage и будет готов к коммиту.

Внимание!

Чтобы внести изменения в Git, файл pom.xml можно добавить к коммиту и позже. Для этого нажмите Cancel. А если ранее вы уже выбрали действие по умолчанию и поставили галочку перед Remember, don’t ask again, это окно не появится.

  • Вам будет предложено установить значения groupId, artifactId, version в pom.xml — сделайте это с помощью редактора.

В Maven каждый проект идентифицируется парой groupId и artifactId.

  • groupId — наименование организации или подразделения. Обычно здесь действуют такие же правила, как и при именовании пакетов в Java, — записывают доменное имя организации или сайта проекта. Например, ru.sendel.
  • artifactId — название вашего проекта. Например, LambdaExpressions.
  • version — версия проекта. Если состояние кода для проекта не зафиксировано, в конце к имени версии добавляется -SNAPSHOT. Это означает, что версия в разработке и результирующий JAR-файл может меняться. Например: 1.4.6, 1.0-SNAPSHOT.

Импорт изменений pom.xml

После изменения pom.xml нужно прочитать конфигурацию из файла pom.xml, чтобы активировать её в проекте. Для этого, в зависимости от версии IDEA, выполните следующие действия:

  • Для IntelliJ IDEA 2020.1 и выше используйте сочетание клавиш Ctrl + Shift + O либо нажмите кнопку Reimport во всплывающем окошке.
  • Для IntelliJ IDEA версии до 2020.1 после редактирования свойств в файле выполните чтение (импорт) изменений в проект. Для этого нажмите правой кнопкой мыши на файл pom.xml, а в окне Project выберите Maven → Reimport.

Ошибка Error: java: error: release version 5 not supported

После попытки запустить проект у вас может появиться сообщение об ошибке:

Причина в том, что Maven по умолчанию пытается скомпилировать проект, используя версию языка 1.5 (JDK 5). Такая ошибка возникнет, если вы используете библиотеки из более высоких версий Java.

Чтобы указать Maven, какую библиотеку использовать, необходимо явно отметить это в pom.xml, добавив блок <properties>:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ru.skillbox</groupId>
<artifactId>LambdaExpressions</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>

Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:

<properties>
<maven.compiler.source>14</maven.compiler.source>
<maven.compiler.target>14</maven.compiler.target>
</properties>

Что дальше

После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.



Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Java-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована