Плагины и цели Maven
Настраивайте сборку
«Плагины и цели Maven» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Плагины и цели Maven
Maven почти ничего не делает сам — всю реальную работу выполняют плагины. Плагин добавляет цели, а цели привязываются к фазам жизненного цикла. В этом уроке показано, как плагины настраивают сборку.
Плагины и цели
Плагин — это упакованный набор связанных возможностей. Цель — конкретная задача внутри плагина. Например, плагин компилятора предоставляет цели compile и testCompile.
Координаты целей
Цель можно вызвать напрямую в формате plugin:goal. Например, с помощью mvn compiler:compile или mvn surefire:test. Обычно цели запускаются автоматически, поскольку привязаны к фазам.
Привязка к фазам
Тип упаковки по умолчанию заранее привязывает стандартные плагины к фазам. Для проекта с типом jar цель compile плагина компилятора привязывается к фазе compile, а цель test плагина Surefire — к фазе test. Поэтому команда mvn test просто работает.
Настройка компилятора
Плагин настраивается внутри <build><plugins>. Здесь мы задаём уровень выпуска Java, чтобы компилятор ориентировался на определённую версию.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>
</plugins>
</build>Плагин Surefire
Surefire запускает модульные тесты во время фазы test. Вы можете настроить набор включаемых тестов, параллельное выполнение и аргументы JVM. Его родственный плагин Failsafe запускает интеграционные тесты во время фазы verify.
Привязка дополнительного выполнения
Блок <execution> явно привязывает цель к фазе, при необходимости задавая собственную конфигурацию. Так подключаются дополнительные действия, например генерация кода перед компиляцией.
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>print-banner</id>
<phase>generate-sources</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>Сборка JAR с зависимостями
JAR по умолчанию не содержит зависимости. Плагин Shade (или плагин Assembly) объединяет всё в один исполняемый JAR-архив, привязывая свою цель к фазе package.
Плагин Exec
Плагин Exec позволяет запускать приложение из Maven с помощью команды mvn exec:java, указав главный класс. Удобно для быстрых запусков без упаковки.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.App</mainClass>
</configuration>
</plugin>Управление плагинами
В многомодульной сборке блок <pluginManagement> в родительском POM фиксирует версии плагинов и общую конфигурацию. Дочерние модули затем ссылаются на плагин, не повторяя версию, благодаря чему сборки остаются согласованными.
Изучение конфигурации
Используйте команду mvn help:describe -Dplugin=compiler, чтобы вывести список целей и параметров плагина. Это самый быстрый способ узнать, какие настройки предоставляет плагин, не выходя из терминала.
Проверьте себя
Проверьте, насколько Вы понимаете плагины и цели.
Повторение
Вы узнали, как работают плагины Maven:
- Всю реальную работу по сборке выполняют плагины, которые добавляют цели.
- Цели привязаны к фазам жизненного цикла, поэтому стандартные фазы работают автоматически.
- Плагины настраиваются внутри
<build><plugins>; для дополнительных привязок добавляются выполнения. - Shade и Assembly собирают JAR с зависимостями; Exec запускает приложение, а Surefire и Failsafe — тесты.
mvn help:describeпоказывает цели и параметры плагина.
Часто задаваемые вопросы
Урок «Плагины и цели Maven» бесплатный?
Да — полный текст урока «Плагины и цели Maven» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Плагины и цели Maven»?
Настраивайте сборку Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Плагины и цели Maven»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Структура проекта Maven
- Плагины и цели Maven
- Основы Gradle
- Выбор инструмента сборки