Переопределение "чистого" жизненного цикла в Maven
Я просматривал книгу, в которой объясняется, как переопределить жизненный цикл по умолчанию Maven.
В нем говорится: Чтобы определить новый жизненный цикл для типа упаковки, вам нужно настроить компонент LifecycleMapping в Plexus. В проекте плагина создайте META-INF/plexus/components.xml в разделе src/main/resources. В components.xml добавьте содержимое, как показано ниже, и все готово. В приведенной ниже конфигурации я могу настроить жизненный цикл по умолчанию для типа упаковки "jar". Теперь, если я воспользуюсь
пакет $mvn
Он отстраняет выполнение фазы пакета, пропуская все остальные фазы жизненного цикла по умолчанию и выполняет "эхо" цель "maven-zip-plugin".
<component-set>
<components>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>zip</role-hint>
<implementation>
org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
</implementation>
<configuration>
<phases>
<package>org.sonatype.mavenbook.plugins:maven-zip-plugin:echo
</package>
</phases>
</configuration>
</component>
</components>
</component-set>
Мой вопрос: как я могу настроить "чистый" жизненный цикл. Например, предположим, когда кто-то типа
$ mvn clean
Вместо запуска clean: clean, который выполнит "чистую" цель плагина "maven-clean-plugin", я хотел выполнить цель "customClean" для "customPlugin".
Ответы
Ответ 1
Для того, что вы описали, проще просто запретить запуск maven-clean-plugin
во время фазы clean
и вместо этого присоединить customPlugin к фазе clean
. Это проще, чем короткое замыкание всего жизненного цикла и сохраняет всю вашу конфигурацию maven в вашем pom.
1 предотвратить maven-clean-plugin
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
2 присоедините свой собственный плагин к чистой фазе
<plugin>
<artifactId>maven-customPlugin-plugin</artifactId>
<version>customPlugin-version</version>
<executions>
<execution>
<id>customised-clean</id>
<goals>
<goal>customClean</goal>
</goals>
<phase>clean</phase>
</execution>
</executions>
</plugin>