我正在写一个Maven插件(魔),需要在运行前执行一套标准的其他插件处决。
有没有宣布我的插件内的所有目标,所以我不必依靠定义它们都在各自的POM用户的机制?
我正在写一个Maven插件(魔),需要在运行前执行一套标准的其他插件处决。
有没有宣布我的插件内的所有目标,所以我不必依靠定义它们都在各自的POM用户的机制?
您可以通过定义一个自定义的生命周期,在你的Mojo通过执行调用该生命周期做execute
注释。
在你的Mojo,声明在Javadoc的生命周期内执行:
/**
* Invoke the custom lifecycle before executing this goal.
*
* @goal my-goal
* @execute lifecycle="my-custom-lifecycle" phase="process-resources"
*/
public class MyMojo extends AbstractMojo {
...
然后定义中的src / main /资源/ META-INF /行家/ lifecycle.xml一个自定义的生命周期。
生命周期是一个有点像丛的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
叉形生命周期的相位(在魔定义的执行之内的所有事情)。
在lifecycle.xml,您可以定义多个阶段,每生命周期的阶段多次执行。 可用阶段的定义Maven的生命周期 。
你可以找到更多关于在生命周期中创建自定义生命周期 Maven的书的部分。 它不给的是什么,虽然允许一个详尽的清单。 唯一的其他参考我知道,如果是从Maven的2阿尔法 ,所以可能是不是该由最新