簡體   English   中英

覆蓋Maven中的“干凈”生命周期

[英]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中。

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM