我的目标是让我的 ant 构建脚本构建一个 war 文件并包含 ivy 知道该项目所依赖的 jar。我目前能想到的最好的代码如下
<mkdir dir="dist/lib"/>
<ivy:retrieve pattern="dist/lib/[artifact].[ext]" sync="true"/>
<war destfile="dist/${ivy.module}.war" basedir="build" includes="**/*.class"
webxml="${war.webxml}">
<fileset dir="${war.web}"/>
<lib dir="dist/lib"/>
</war>
这段代码的问题是它复制了两次罐子。一次进入我的 dist/lib 目录,然后在创建战争时再次进入。它有效,但我无法摆脱有更好方法的感觉。
我想做的是更像以下的事情
<ivy:cachepath pathid="locpathref.classpath"/>
<war destfile="dist/${ivy.module}.war" basedir="build" includes="**/*.class"
webxml="${war.webxml}">
<fileset dir="${war.web}"/>
<lib refid="locpathref.classpath"/>
</war>
问题是 lib 标签不接受任何类型的 refid。有什么想法,或者我是否坚持使用一组额外的文件副本?