web-dev-qa-db-fra.com

Compiler des fourmis ne copie pas les ressources

J'ai créé ma propre build.xml qui a:

<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>

Cela fonctionne bien. Lorsque j'appelle Tound Run, donc il compile et exécute ma candidature, mais mon application dispose d'un package avec des icônes et il n'est pas déplacé dans un dossier "Build", alors mon application se termine par une exception qu'il ne pouvait pas localiser mes icônes. Quand je les déplace par moi-même, cela fonctionne.

J'ai essayé d'utiliser

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

Cela fonctionne, mais j'aimerais le faire sans la commande de copie. Y a-t-il un paramètre à Javac? Ou autre chose?

Merci de votre réponse.

37
Tomáš Linhart

Désolé, vous devrez copier manuellement des fichiers non-Java. Les ressources ne sont techniquement pas "source". La ligne de commande Javac ne copiera pas les fichiers de ressources de votre répertoire source dans le répertoire de sortie, aucune autre tâche Javac de Ni.

24
Mike Miller

Il n'y a pas de tel paramètre. Vous pouvez copier toutes sortes de fichiers entre vos répertoires avec:

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

Non, il n'y a pas. La tâche de copie est la bonne façon de copier des ressources dans vos dossiers de construction.

4
jsight