2010-05-08 3 views
2

la structure Tenir compte répertoire suivant:Comment jar java fichiers source de différents (sous-) répertoires?

./source/com/mypackage/../A.java 
./extensions/extension1/source/com/mypackage/../T.java 
./extensions/extension2/source/com/mypackage/../U.java 
... 
./extensions/extensionN/source/com/mypackage/../Z.java 

Je veux produire un pot source avec le contenu suivant:

com/mypackage/../A.java 
com/mypackage/../T.java 
com/mypackage/../U.java 
... 
com/mypackage/../Z.java 

Je sais que je pourrais utiliser un ensemble de fichiers pour chaque répertoire source. Mais existe-t-il une solution simple utilisant ANT sans avoir à se référer explicitement à toutes les extensions?

Répondre

1

Qu'en est-il de l'aplatissement de tous les fichiers à inclure dans l'archive dans une structure de répertoires unique, puis de l'archivage à partir de là?

Utilisez un regexpmapper pour faire le aplatissent lors de la copie, quelque chose comme ceci:

<delete dir="merged" /> 
<mkdir dir="merged" /> 

<copy todir="${basedir}/merged"> 
    <fileset dir="${basedir}"> 
     <include name="source/**"/> 
     <include name="extension*/**"/> 
    </fileset> 
    <regexpmapper from=".*source/(.*)" to="\1" /> 
</copy> 

<jar destfile="mypackage.jar" filesonly="yes"> 
    <fileset dir="merged"> 
     <include name="**" /> 
    </fileset> 
</jar> 
+0

Merci pour la suggestion Martin. Cela a fait l'affaire. Le regexpmapper était la partie manquante. J'ai seulement dû ajouter l'attribut handleirsep = "true" au mappeur pour le faire fonctionner sous Windows. – Holger

Questions connexes