2010-11-22 15 views
6

J'ai une cible de fourmi pour créer zip comme ça -Ant - Java - zipfileset - à l'exception d'un répertoire

<zip destfile="${dist}/myzip.zip"> 
    <zipfileset dir="docs/manual" prefix="docs/userguide"/>  
</zip> 

Cela crée essentiellement des archives myzip.zip avec tous les fichiers et répertoires sous docs/manual préfixé avec docs/userguide dans la archiver.

Mais Je ne veux inclure tous les sous-répertoires docs/manual à copier dans l'archive, je un répertoire appelé old sous docs/manual que je veux exclure ... Comment y parvenir?

Répondre

10

De l'ZipFileSet reference page

<zipfileset> prend en charge tous les attributs de <fileset> en plus de ceux qui sont énumérés ci-dessous.

Donc, voir FileSet pour référence.

Voici comment vous le faites:

<zipfileset dir="docs/manual" prefix="docs/userguide">  
    <exclude name="old/**"/> 
</zipfileset> 

ou en ligne comme attribut:

<zipfileset dir="docs/manual" prefix="docs/userguide" exclude="old/**" /> 

Mise à jour: En utilisant wildcards maintenant au lieu du nom simple.

+0

Merci pour votre réponse, mais cela ne semble pas fonctionner pour exclure l'ensemble du répertoire, Comment jamais je pouvais voir que si j'utilise un nom de fichier à la place de "vieux", le fichier est exclu. –

+0

OK, vous devez utiliser des caractères génériques ant. quelque chose comme 'old/**' –

1
<zip destfile="${dist}/myzip.zip" excludes="docs/manual/old/**"> 
    <zipfileset dir="docs/manual" prefix="docs/userguide"/>  
</zip> 
2

vous pouvez exclure un répertoire entier par ceci:

<zipfileset dir="docs/manual" prefix="docs/userguide" exlcudes="**/old/**"/> 
+1

Cette réponse exclut tous les fichiers de ce répertoire ET le répertoire lui-même. La réponse acceptée ci-dessus exclut seulement le contenu du répertoire quand je l'ai essayé, mais le répertoire lui-même était toujours inclus –

0

Ce fut le seul qui a fonctionné pour moi pour le retrait du modèle de fichier spécifique

<zip destfile="${bin.dir}/boo.jar"> 
    <zipfileset dir="${classes.dir}" excludes="**/*/BooCreator*.class"/> 
</zip>