Domanda

Sono in procinto di impacchettare la mia applicazione java in un file jar. Sto usando la formica e l'eclissi. Devo davvero includere nel vaso un paio di file separati, non di codice (file xml e txt) direttamente sotto la cartella principale, non nello stesso posto del codice.

Sto cercando di usare Includesfile, ma non sembra funzionare, ecco il mio obiettivo formica:

<target name="distribute" depends="compile" includesfile="readthis.txt">
    <jar destfile="${distributionDir}/myjar.jar" >
        <fileset dir="${outputDir}"/>
    <fileset dir="${sourceDir}"/>           
    </jar>
</target>

Quanto sopra funziona bene quando ometto l'argomento Includesfile. Inoltre, devo aggiungere più file non di codice. Questi file si trovano direttamente nella cartella del progetto principale in Eclipse e non all'interno di alcun pacchetto java.

Inoltre, come puoi vedere sopra, fondamentalmente sto includendo anche nel mio codice sorgente il mio codice sorgente. C'è un modo per dire all'attività jar di inserire il codice sorgente in una cartella separata dal codice compilato?

Come attività di compilazione o compilazione, Ant può facilmente separare il codice sorgente dalle classi compilate. Ma c'è un modo per farlo anche all'interno di un file jar?

Mille grazie per il tuo tempo!

È stato utile?

Soluzione

Non dovresti avere un attributo Includesfile in un target per cominciare, e sospetto che tu abbia frainteso il punto comunque - l'idea è che il il file specificato con Includesfile contiene schemi per i file da includere, se non si desidera inserirli nel file Ant.

Mi sembra che tutto ciò che serve sia un set di file extra contenente i file appropriati di cui hai bisogno. Ad esempio, per readthis.txt :

<target name="distribute" depends="compile">
  <jar destfile="${distributionDir}/myjar.jar" >
    <fileset dir="${outputDir}"/>
    <fileset dir="${sourceDir}"/>
    <fileset file="readthis.txt" />
  </jar>
</target>

Vorrei anche suggerire di creare una nuova directory per le risorse, in modo da poter fare:

<target name="distribute" depends="compile">
  <jar destfile="${distributionDir}/myjar.jar" >
    <fileset dir="${outputDir}"/>
    <fileset dir="${sourceDir}"/>
    <fileset dir="${resourcesDir}" />
  </jar>
</target>

senza problemi. Ciò manterrà anche la struttura della directory più pulita, rendendo più facile trovare le cose dall'alto verso il basso.

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