Apache Ant JAR Task: non trovare proprietà
Domanda
Come devo esattamente specificare la posizione di tutti i file delle proprietà all'interno del manifest di formica?
Il mio vaso non funziona perché non riesce a trovare le proprietà log4j, Spring, ecc.
Questi file sono tutti contenuti in una cartella chiamata " server-config " che si trova allo stesso livello del codice sorgente, ovvero:
- META-INF
- com
- del server-config
In sostanza, voglio sapere cosa devo aggiungere alla proprietà Class-Path affinché il jar sia a conoscenza di tutti questi file delle proprietà all'interno della cartella server-config.
Ecco il mio compito attuale:
<jar destfile="${root.home}/onejar/build/main/main.jar" basedir="${build.home}">
<manifest>
<attribute name="Class-Path" value=".;server-config" />
</manifest>
<include name="com/mycompany/client/*"/>
<include name="com/mycompany/portable/util/*"/>
<include name="com/mycompany/request/*"/>
<include name="com/mycompany/model/*"/>
<include name="com/mycompany/controller/*"/>
<include name="com/mycompany/helpers/*"/>
<include name="server-config/*"/>
</jar>
Ho provato alcune cose e nessuna di esse funziona, continuo a ricevere errori a causa del file non trovato.
Qualsiasi aiuto sarebbe molto apprezzato!
Soluzione
Puoi rimuovere l'intera parte <manifest...
- non è quello che fa l'attributo manifest Class-Path. È per cose esterne al JAR.
La riga <include name="server-config/*"/>
dovrebbe funzionare - se la directory server-config esiste all'interno della tua directory $ {build.home}. Probabilmente hai bisogno di un'attività per copiarli lì - dici che il codice sorgente si trova allo stesso livello, ma non dici dove sono compilati .
Un esempio -
<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
<fileset dir="${src.dir}/server-config">
<include name="*"/>
</fileset>
</copy>