Как из обычного 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>:
Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:
Что дальше
После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.