[英]Overriding 'clean' lifecycle in Maven
我正在閱讀一本書,解釋如何覆蓋Maven的“默認”生命周期。
它說:要為包裝類型定義新的生命周期,您需要在Plexus中配置LifecycleMapping組件。 在您的插件項目中,在src / main / resources下創建META-INF / plexus / components.xml。 在components.xml中添加內容,如下所示,您就完成了。 通過以下配置,我可以自定義'jar'包裝類型的默認生命周期。 現在,如果我執行
$ mvn包
它直接執行'package'階段,跳過默認生命周期的所有其他階段,並執行'maven-zip-plugin'的'echo'目標。
<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
而不是運行干凈:干凈,將執行'maven-clean-plugin'插件的'干凈'目標,我想執行'customPluan'的'customClean'目標。
根據您的描述,在clean
階段阻止maven-clean-plugin
運行更簡單,並將customPlugin附加到clean
階段。 這比短路整個生命周期更簡單,並將所有maven配置保存在您的pom中。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.