以下是我对Maven内部模型(又名构建模型)的理解:
Maven确实有全球目标(清洁,构建,网站)。每个定义一个生命周期,也由包装指令改变。生命周期由阶段组成。
每个maven构建过程也有一组活动的插件。可以使用pom.xml的插件定义中的标记在任何阶段执行插件。
每个插件本身都提供一些mojos。那些mojos实际上是插件提供的目标,甚至可以在命令行上使用。
问题是它是如何组合在一起的?
Maven的默认目标是构建。如果我想将我的插件添加到资源:testResources阶段@Mojo注释必须是什么以及我的插件的pom表示部分应该是什么样的?
答案 0 :(得分:1)
要将MOJO绑定到默认阶段,您需要使用@Mojo
注释的defaultPhase
属性。例如,要绑定到“流程测试资源”阶段,请使用LifecyclePhase.PROCESS_TEST_RESOURCES
。请注意,默认情况下,此默认阶段设置为none,这意味着如果未设置defaultPhase
,则必须在POM中指定要执行插件的阶段。
使用这样的默认阶段,不在POM中指定阶段将导致插件在该阶段执行。
也可以覆盖该阶段,如下所示:
<plugin>
<groupId>...<groupId>
<artifactId>...</artifactId>
<version>...</version>
<executions>
<execution>
<id>id</id>
<phase>process-resources</phase> <!-- force phase to process-resources, whatever the default -->
</execution>
</executions>
</plugin>