我有一堆maven项目需要在构建/部署阶段使用maven-antrun-plugin执行相同的ant任务序列。
我不想在父项目中覆盖maven-antrun-plugin的实现,因此使用此插件的所有其他项目都将继承这些步骤。
因此,我正在研究编写自己的maven插件,该插件可作为maven-antrun-plugin包装器,具有特殊的ant任务序列。但目前我没有成功这样做。
我看过:
http://maven.apache.org/guides/plugin/guide-ant-plugin-development.html
但遇到了这里描述的同样问题:
http://www.mail-archive.com/users@maven.apache.org/msg92676.html
(使用上述帖子中建议的版本无法解决问题)
来自: http://www.mail-archive.com/users@maven.apache.org/msg115264.html 看起来教程只适用于maven2:
我也试图从这里偷东西:
http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
但仍然没有可用的插件。
我要包装的插件如下所示:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>test</id>
<phase>deploy</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- execute task A,B and D -->
</tasks>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
是否可以将任务A,B和C的序列放在另一个插件中,然后在需要的地方使用该插件?
我还尝试将antrun插件移动到父级,并为某些将继承设置为false的子级禁用它:
但是父进程中定义的任务仍然执行,因此将继承设置为false似乎不起作用。
答案 0 :(得分:0)
如果您想在父级中定义<plugin>
并允许孩子根据需要使用它,那么您可以在<pluginManagement>
部分中对其进行定义。通过这样做,父级将不会执行插件。它只会为那些在他们的pom中定义这个插件的孩子执行。
对于ant任务的排序,在ant脚本中创建task
会不会更简单,它会依次调用任务A,B和C并继续使用默认的maven-antrun-plugin
功能?