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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top