Моя цель состоит в том, чтобы мой скрипт сборки ant создал военный файл и включил в него jar-файлы, от которых, как известно ivy, зависит этот проект. Лучший код, который я мог придумать на данный момент, это следующий
<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. Любые идеи или я застрял с дополнительным набором копий файлов?