with script run how from dist java ant

java - dist - how to run ant script from command line



Ant compile no copia los recursos (4)

Creé mi propio build.xml que tiene:

<target name="compile"> <mkdir dir="build"/> <javac destdir="build"> <src path="src"/> </javac> </target> <target name="build" depends="compile"> <mkdir dir="dist"/> <jar destfile="dist/app.jar" basedir="build" /> </target> <target name="run" depends="compile"> <java classname="webserver.Loader" classpath="build" fork="true" /> </target>

Funciona muy bien. Cuando llamo a ant run para que compile y ejecute mi aplicación, pero mi aplicación tiene un paquete con íconos y no se mueve a una carpeta "compilación" para que mi aplicación termine con la excepción de que no pudo ubicar mis íconos. Cuando los muevo solo, funciona.

Intenté usar

<copy todir="build/app/icons"> <fileset dir="src/app/icons"/> </copy>

Funciona, pero me gustaría hacerlo sin el comando copiar. ¿Hay algún parámetro para javac? ¿O algo mas?

Gracias por su respuesta.


Lo sentimos, deberá copiar los archivos que no sean Java de forma manual. Los recursos técnicamente no son "fuente". La línea de comando javac no copiará los archivos de recursos de su directorio de origen al directorio de salida, tampoco lo hará la tarea javac de ant.


No hay tal parámetro. Puede copiar todo tipo de archivos entre sus directorios con:

<copy todir="build"> <fileset dir="src" includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" /> </copy>


No, no hay. La tarea de copia es la forma correcta de copiar recursos en sus carpetas de compilación.


Puede hacerlo utilizando el elemento del conjunto de fileset de la tarea jar lugar de copiar los archivos manualmente. Por ejemplo:

<jar destfile="dist/app.jar" basedir="build"> <fileset dir="src" includes="app/icons/**" /> </jar>

Esto copiará todo en src/app/icons/ a la ruta de la app/icons en su archivo .jar.