Как собрать проект Maven через командную строку

Как собрать проект maven

Как собрать проект maven

Работа через терминал позволяет запускать сборку Maven без IDE и получать полный контроль над выполняемыми целями. Доступ к утилите mvn дает возможность компилировать код, выполнять тесты и формировать артефакты в точном соответствии с настройками pom.xml.

Перед запуском команд важно убедиться, что переменные окружения настроены корректно: путь к Maven должен находиться в PATH, а переменная JAVA_HOME должна указывать на установленную JDK. Без этих условий запуск команд будет невозможен.

Использование терминала упрощает интеграцию проекта в скрипты, CI-системы и автоматизированные цепочки сборки. Команды mvn позволяют запускать нужные задачи последовательно или выборочно, что особенно удобно при отладке конфигурации и проверке отдельных этапов.

Проверка установленной версии Maven через терминал

Проверка установленной версии Maven через терминал

Перед запуском любых команд стоит убедиться, что Maven установлен и доступен в системе. Для этого используется простая проверка через терминал.

Выполните команду:

Если утилита не найдена, терминал сообщит об ошибке. В такой ситуации необходимо проверить:

  • добавлен ли путь к каталогу bin Maven в переменную PATH;
  • корректно ли указана JAVA_HOME;
  • совпадает ли версия JDK с требованиями проекта.

После корректной настройки переменных повторный запуск mvn -v позволит убедиться, что система видит установленный Maven и готова к сборке проекта.

Структура проекта и роль файла pom.xml при сборке

Стандартная структура Maven включает каталоги src/main/java, src/main/resources, src/test/java и каталог target, создаваемый после сборки. Такое расположение позволяет Maven точно определять, какие файлы необходимо компилировать и где размещать результат.

Файл pom.xml задаёт параметры сборки: координаты артефакта, список зависимостей, версии плагинов и конфигурацию отдельных этапов. Любая команда mvn опирается именно на эти данные, поэтому корректность содержимого файла напрямую влияет на процесс сборки.

При изменении зависимостей или подключении плагинов Maven автоматически загружает нужные компоненты из репозиториев. Если указана неправильная версия библиотеки, процесс сборки остановится с ошибкой, что позволяет быстро обнаружить некорректные записи в pom.xml.

Подготовка системных переменных для запуска mvn

Работа утилиты mvn зависит от корректно настроенных системных переменных. Без них запуск команд невозможен, даже если Maven установлен.

Переменная JAVA_HOME должна указывать на каталог установленной JDK. Внутри него должен находиться подкаталог bin с файлами java и javac. Если путь задан неверно, Maven не сможет получить доступ к инструментам компиляции.

В переменную PATH необходимо добавить путь к каталогу bin Maven. Это позволяет запускать mvn из любого каталога без указания полного пути. После изменения переменных требуется перезапустить терминал, иначе обновления не будут применены.

Сборка проекта с помощью команды mvn compile

Команда mvn compile выполняет компиляцию исходников из каталога src/main/java и помещает результаты в каталог target/classes. Maven использует параметры, указанные в pom.xml, включая версии JDK, плагины и зависимости.

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

Повторный вызов mvn compile компилирует только изменённые файлы. Это ускоряет обработку проекта и уменьшает количество операций над неизменёнными классами. Для проверки успешной компиляции достаточно убедиться, что каталог target содержит скомпилированные классы.

Создание исполняемого артефакта с использованием mvn package

Команда mvn package формирует артефакт на основе настроек pom.xml. Результат помещается в каталог target. Тип файла зависит от параметра packaging, указанного в конфигурации проекта.

packaging тип создаваемого файла
jar архив Java-классов без встроенных зависимостей
war файл веб-приложения для развертывания на серверах сервлетов
pom модуль без исполняемого артефакта

При выполнении mvn package Maven запускает компиляцию, тестирование и сборку. Если в проекте определён плагин для создания исполняемого JAR с манифестом, результат будет содержать указание на главный класс. В случае ошибок на любом этапе процесс остановится, а лог подскажет, какой модуль требует исправления.

После завершения команды в каталоге target появится готовый файл, который можно передавать в другие системы, запускать через java -jar или использовать в составе большего проекта.

Очистка каталога target перед новой сборкой

Очистка каталога target перед новой сборкой

Каталог target содержит результаты предыдущих сборок: скомпилированные классы, тестовые отчёты и артефакты. Для предотвращения конфликтов или использования устаревших файлов рекомендуется очищать его перед новой сборкой.

Для очистки используется команда:

  • mvn clean – удаляет весь каталог target, сохраняя структуру исходного проекта.

Последовательность действий для безопасной очистки и сборки:

  1. Открыть терминал в корне проекта.
  2. Выполнить mvn clean для удаления старых артефактов.
  3. Запустить mvn compile или mvn package для создания свежей сборки.

Регулярная очистка target предотвращает ошибки, связанные с несовпадением версий классов и зависимостей, особенно при активной работе с обновлениями библиотек.

Запуск тестов через команду mvn test

Команда mvn test выполняет все юнит-тесты, расположенные в каталоге src/test/java, используя настройки, указанные в pom.xml. Maven автоматически подключает необходимые зависимости для тестирования, включая JUnit или TestNG, если они объявлены.

Процесс тестирования включает следующие этапы:

  • Компиляция тестовых классов в target/test-classes;
  • Загрузка и выполнение всех тестовых методов, аннотированных @Test;
  • Генерация отчётов в формате HTML и XML в каталоге target/surefire-reports.

Если какой-либо тест завершился с ошибкой, mvn test завершится с кодом ошибки, а лог подскажет, какой метод или класс вызвал сбой. Это позволяет быстро локализовать проблему и исправить её до сборки артефакта.

Использование mvn install для локального размещения артефакта

Команда mvn install копирует собранный артефакт в локальный Maven-репозиторий, обычно расположенный в ~/.m2/repository. Это позволяет другим проектам на той же машине использовать библиотеку без загрузки из удалённых репозиториев.

При выполнении команды Maven автоматически:

  • компилирует исходники и тесты;
  • пакует проект в JAR, WAR или другой указанный тип;
  • выполняет тесты;
  • размещает готовый артефакт в локальном репозитории с сохранением структуры по groupId, artifactId и версии.

Использование mvn install удобно при разработке нескольких взаимозависимых модулей: изменения в одном модуле становятся доступными для сборки других проектов сразу после установки артефакта.

Вопрос-ответ:

Как проверить, что Maven установлен и готов к работе через командную строку?

Для проверки используйте команду mvn -v. Она выводит версию Maven, установленную JDK и путь к конфигурации. Если команда возвращает ошибку, нужно проверить переменные окружения JAVA_HOME и PATH.

Что делает команда mvn compile и где оказываются скомпилированные файлы?

Команда mvn compile компилирует исходные файлы проекта из src/main/java и помещает результат в каталог target/classes. Maven учитывает зависимости и плагины, указанные в pom.xml. Если зависимость не найдена, процесс прерывается.

Зачем перед сборкой использовать команду mvn clean?

Команда mvn clean удаляет каталог target, содержащий предыдущие сборки и тестовые отчёты. Это предотвращает конфликты между старой и новой компиляцией, особенно если изменялись зависимости или плагины.

Как сформировать исполняемый JAR с помощью Maven?

Используется команда mvn package. Она компилирует проект, выполняет тесты и упаковывает файлы в JAR или WAR, в зависимости от значения packaging в pom.xml. Если указан плагин для создания исполняемого JAR, файл содержит указание на главный класс для запуска.

В чем разница между mvn package и mvn install?

mvn package формирует артефакт в каталоге target и оставляет его локально. mvn install дополнительно копирует артефакт в локальный Maven-репозиторий (~/.m2/repository), чтобы его могли использовать другие проекты на той же машине.

Как узнать, какие зависимости подключены к проекту и где их хранит Maven?

Список всех зависимостей можно получить командой mvn dependency:tree. Maven показывает иерархию библиотек с указанием версии и источника. Локальные копии хранятся в каталоге ~/.m2/repository, что позволяет проекту использовать их без повторной загрузки.

Что делать, если при сборке с помощью mvn package появляются ошибки, связанные с отсутствующими файлами?

Ошибки возникают, когда Maven не может найти необходимые зависимости или исходные файлы. Сначала проверьте pom.xml на правильность координат библиотек. Если зависимости корректны, используйте mvn clean install для пересборки и загрузки всех компонентов в локальный репозиторий.

Ссылка на основную публикацию