我正在尝试将我的项目从使用Maven 1升级到Maven 2,但我遇到了其中一个目标的问题。我的maven.xml文件中有以下Maven 1目标:
<goal name="jar:init">
<ant:delete file="${basedir}/src/installpack.zip"/>
<ant:zip destfile="${basedir}/src/installpack.zip"
basedir="${basedir}/src/installpack" />
<copy todir="${destination.location}">
<fileset dir="${source.location}">
<exclude name="installpack/**"/>
</fileset>
</copy>
</goal>
然而,我无法在Maven2中找到这样做的方法。
现在,installpack目录位于我的标准Maven2目录结构的资源目录中,因为它只是被复制,所以效果很好。我需要把它拉上拉链。
我在创建ant插件时找到了这个页面:http://maven.apache.org/guides/plugin/guide-ant-plugin-development.html。
看起来我可以创建自己的ant插件来完成我需要的操作。我只是想知道是否有办法只使用Maven2。
我们非常感谢任何建议。
谢谢, B.J。
答案 0 :(得分:2)
您无需创建ant插件,在打包之前使用Maven Antrun Plugin和Ant任务压缩目标下的installpack
目录。在你的pom中声明这样的插件:
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase> <!-- a lifecycle phase --> </phase>
<configuration>
<tasks>
<!--
Place any Ant task here. You can add anything
you can add between <target> and </target> in a
build.xml.
-->
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
如文档所述,将您的ant任务放在<tasks>
元素中并将插件绑定到lifecycle phase,也许prepare-package
阶段(我猜jar:init
在打包之前被调用)。