La compilazione di formiche non copia le risorse
Domanda
Ho creato il mio build.xml che ha:
<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>
Funziona benissimo. Quando chiamo formica in modo che compili ed esegua la mia applicazione, ma la mia applicazione ha un pacchetto con icone e non viene spostata in una cartella " build " quindi la mia applicazione termina con l'eccezione che non è riuscito a individuare le mie icone. Quando li muovo da solo, allora funziona.
Ho provato a usare
<copy todir="build/app/icons">
<fileset dir="src/app/icons"/>
</copy>
Funziona, ma vorrei farlo senza il comando copia. C'è qualche parametro su javac? O qualcos'altro?
Grazie per la risposta.
Soluzione
Spiacenti, dovrai copiare manualmente i file non Java. Le risorse tecnicamente non sono "fonte". La riga di comando javac non copierà i file di risorse dalla directory di origine alla directory di output, né l'attività javac di ant.
Altri suggerimenti
Non esiste tale parametro. Puoi copiare tutti i tipi di file tra le tue directory con:
<copy todir="build">
<fileset dir="src"
includes="**/*.xml,**/*.properties,**/*.txt,**/*.ico" />
</copy>
Puoi farlo usando l'elemento fileset
dell'attività jar
invece di copiare manualmente i file. Ad esempio:
<jar destfile="dist/app.jar" basedir="build">
<fileset dir="src" includes="app/icons/**" />
</jar>
Questo copierà tutto in src / app / icons /
nel percorso app / icone
nel tuo file .jar.
No, non c'è. L'attività di copia è il modo corretto di copiare le risorse nelle cartelle della build.