您可以通过定义自定义生命周期并在通过
execute注释执行Mojo之前调用该生命周期来做到这一点。
在您的Mojo中,在Javadoc中声明要执行的生命周期:
public class MyMojo extends AbstractMojo {...然后在src / main / resources / meta-INF / maven / lifecycle.xml中定义自定义生命周期。
生命周期有点像plexus的components.xml,但是允许您为这些目标指定配置。
请注意,语法与pom中的插件配置略有不同。您可以使用:作为分隔符,而不是指定单独的groupId,artifactId和version元素来定义目标,否则它与pom中插件配置的执行元素在很大程度上是相同的表示法。您甚至可以在lifecycle.xml中使用某些属性(尽管可能并非所有属性都受支持,但我需要检查一下)。
以下示例在流程资源阶段使用不同的配置两次调用了依赖插件:
<lifecycles> <lifecycle> <id>download-dependencies</id> <phases> <phase> <id>process-resources</id> <executions> <execution> <goals> <goal> org.apache.maven.plugins:maven-dependency-plugin:copy-dependencies </goal> </goals> <configuration> <includeScope>compile</includeScope> <includeTypes>war</includeTypes> <overWrite>true</overWrite> <outputDirectory> ${project.build.outputDirectory}/wars </outputDirectory> </configuration> </execution> <execution> <goals> <goal> org.apache.maven.plugins:maven-dependency-plugin:copy-dependencies </goal> </goals> <configuration> <includeScope>compile</includeScope> <includeTypes>jar</includeTypes> <overWrite>true</overWrite> <outputDirectory> ${project.build.outputDirectory}/jars </outputDirectory> </configuration> </execution> </executions> </phase> </phases> </lifecycle></lifecycles>通过这种方法,在
process-resources派生的生命周期阶段,每个配置将对依赖插件进行一次调用(所有插件都在Mojo中定义的执行中发生)。
在lifecycle.xml中,您可以定义生命周期的多个阶段,以及每个阶段的多个执行。可用阶段在Maven生命周期中定义。
您可以在Maven书籍的“ 创建自定义生命周期”部分中找到有关生命周期的更多信息。它没有给出允许的全部清单。我知道的唯一其他参考来自Maven 2
alpha,所以可能不是最新的



