Estoy usando hormiga 1.8.0 y Java 1.6.0.17 y me encuentro con un problema extraño.error de hormiga No se puede cambiar el nombre del archivo anterior al archivo temporal
En mi build.xml, tengo una tarea sencilla que compila el código
<javac destdir="${dir.build.classes}" debug="on">
<classpath refid="classpath"/>
<src path="${dir.src.java}"/>
</javac>
En la "ruta de clases" es un frasco, lo llaman library.jar
En una tarea posterior, necesito añadir unas pocas clases de library.jar
, lo que me gusta este
<jar destfile="library.jar" update="true" duplicate="fail">
<fileset dir="${dir.build.classes}">
<include name="some/class/files"/>
</fileset>
</jar>
este fallará con el error Unable to rename old file (library.jar) to temporary file
Puse en una llamada a handle.exe antes y después de la llamada javac, y puedo confirmar que el proceso java que ejecuta ant agarra un identificador de archivo a library.jar durante la llamada javac, y no le da arriba. Esto hace que mi intento posterior de actualizar el jar falla.
¿Por qué mantener un asa en el jar en un classpath abierto incluso después de que se complete la tarea javac?
Puede explicar qué quiere decir con "establecer explícitamente ruta de clase de la tarea javac"? Es un conjunto bastante grande de frascos que se usa en muchos otros lugares, por lo que codificarlos con dureza no es realmente una opción, y no estoy seguro de por qué marcaría la diferencia. – karoberts