Mi objetivo es que mi script de compilación ant construya un archivo war e incluya los archivos de los que hiedra sabe que depende este proyecto. El mejor código que podía llegar a por el momento es el siguienteCómo usar hiedra para construir una guerra sin copiar tarros en un directorio lib
<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>
El problema con este código es copia los tarros dos veces. Una vez en mi directorio dist/lib y de nuevo en la guerra cuando se crea. Funciona, pero no puedo sacudir la sensación de que hay una mejor manera.
Lo que me gustaría hacer es algo más parecido a la siguiente
<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>
El problema es que la etiqueta lib no toma en un refid de ningún tipo. ¿Alguna idea o estoy atrapado con un conjunto adicional de copias de archivos?
Uso entonces la etiqueta lib funcionará como se espera –