2010-08-03 3 views
2

J'utilise ANT pour générer le fichier WAR pour mon application Web Java. Cependant, lorsque je regarde dans le fichier WAR, je vois que chaque fichier apparaît deux fois (pas les dossiers, juste les fichiers). Lorsque j'extrais le fichier WAR, il n'y a pas d'erreur et la structure du fichier semble correcte, pas de double fichier. Si je compense ensuite le fichier extrait dans un fichier ZIP, l'archive est presque exactement la moitié de la taille en octets du fichier WAR d'origine créé par ANT.Les fichiers à l'intérieur de WAR apparaissent en double

J'utilise la tâche suivante pour créer mon fichier WAR:

<target name="dist" depends="package">   
    <war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}"> 
     <fileset dir="${tmp.dir}" /> 
    </war> 
</target> 

Lorsque j'inspecte la structure de fichier dans le tmp.dir les fichiers semblent apparaître OK. Je cours ANT d'Eclipse (Helios) sur Ubuntu 9.10.

Répondre

2

J'ai découvert ce qui a causé le problème. La balise <fileset> à l'intérieur de la tâche <war> entraîne l'ajout des fichiers à l'archive deux fois. Ce serait bien si ANT vomissait une erreur, mais ce n'était pas le cas. Depuis que je veux ajouter l'ensemble tmp.dir à mes archives, je aurais dû à suivre:

<target name="dist" depends="package">   
    <war destfile="${bin.dir}/webapp.war" basedir="${tmp.dir}"> 
     <!-- No extra <fileset> --> 
    </war> 
</target> 

Dans le cas où quelqu'un d'autre vient à travers ce problème, je laisse cette question ici plutôt que de le supprimer.

Questions connexes