Estoy en el proceso de empaquetar mi aplicación java en un archivo jar. Estoy usando hormiga y eclipse. Debo incluir realmente en el archivo jar un par de archivos separados sin código (archivos xml y txt) directamente debajo de la carpeta raíz, no en el mismo lugar que el código.agregando recursos sin código al archivo jar usando Ant
Estoy tratando de utilizar includesfile, pero eso no parece funcionar, aquí es mi tarea ant:
<target name="distribute" depends="compile" includesfile="readthis.txt">
<jar destfile="${distributionDir}/myjar.jar" >
<fileset dir="${outputDir}"/>
<fileset dir="${sourceDir}"/>
</jar>
</target>
Lo anterior funciona bien cuando omite el argumento includesfile. Además, necesito agregar varios archivos sin código. Estos archivos se encuentran directamente debajo de la carpeta del proyecto raíz en Eclipse, y no dentro de ningún paquete de Java.
Además, como puede ver arriba, básicamente estoy incluyendo también mi código fuente. ¿Hay alguna forma de decirle a la tarea jar que coloque el código fuente en una carpeta separada del código compilado?
Como tarea de compilación o compilación, Ant puede separar fácilmente el código fuente de las clases compiladas. Pero, ¿hay alguna manera de hacerlo dentro de un archivo jar también?
Muchas gracias por su tiempo!
Gracias! Eso ciertamente ayudó. Me preguntaba si también puedo decirle a la tarea jar que separe la fuente de las clases compiladas. En este momento, tanto el origen como las clases se encuentran en la misma estructura de paquete. ¿No debería la tarea jar conservar las carpetas de salida y src? Lo que significa que cuando expando el jar, veo en myjar/code/my/package/file.java y file.class Pensé que la tarea jar podría conservar las carpetas como: myjar/code/my/package /source/file.java - y por separado myjar/code/my/package/build/file.class ¿Me falta algo en el uso que hago de la tarea jar? – denchr
No, eres incorrecto. Deberían estar uno al lado del otro. Si el contenedor contiene una estructura de carpeta como code/my/package/build/file.class, eso implicaría que el nombre del paquete debe ser code.my.package.build. También podría simplemente poner las fuentes en un segundo archivo JAR. –
Veo a qué te refieres. Algo así como lo que estoy sugiriendo tendría implicaciones para el nombre del paquete ... Por lo tanto, en general, si quiero incluir la fuente en mi archivo jar, * tiene * para estar en la misma carpeta que la compilación compilada. – denchr