Maven 2 覆盖';清洁';Maven中的生命周期

Maven 2 覆盖';清洁';Maven中的生命周期,maven-2,build,maven,build-process,Maven 2,Build,Maven,Build Process,我正在阅读一本书,书中解释了如何覆盖Maven的“默认”生命周期 它说:要为包装类型定义新的生命周期,您需要在Plexus中配置LifecycleMapping组件。在插件项目中,在src/main/resources下创建META-INF/plexus/components.xml。在components.xml中添加如下所示的内容,就完成了。通过下面的配置,我可以自定义“jar”包装类型的默认生命周期。现在如果我执行 $mvn套餐 它执行“包”阶段,跳过默认生命周期的所有其他阶段,并执行“

我正在阅读一本书,书中解释了如何覆盖Maven的“默认”生命周期

它说:要为包装类型定义新的生命周期,您需要在Plexus中配置LifecycleMapping组件。在插件项目中,在src/main/resources下创建META-INF/plexus/components.xml。在components.xml中添加如下所示的内容,就完成了。通过下面的配置,我可以自定义“jar”包装类型的默认生命周期。现在如果我执行
$mvn套餐
它执行“包”阶段,跳过默认生命周期的所有其他阶段,并执行“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>

org.apache.maven.lifecycle.mapping.LifecycleMapping
拉链
org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping
插件:maven zip插件:echo
我的问题是:如何定制“干净”的生命周期。例如,假设有人键入
$mvn清洁

不是运行clean:clean,它将执行“maven clean plugin”插件的“clean”目标,我想执行“customPlugin”的“customClean”目标。

对于您所描述的,更简单的方法是在
clean
阶段阻止
maven clean plugin
运行,并将customPlugin附加到
clean
阶段。这比缩短整个生命周期更简单,并且将所有maven配置都保存在pom中

1防止maven clean插件

maven清洁插件
2.4.1
真的
2将自己的插件连接到清理阶段

maven自定义插件
自定义插件版本
定制清洁
海关清洁
清洁的

这是一个更优雅的解决方案是的。。这是解决我问题的最简单办法。
<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>