2010-11-22 13 views
6

Ho un obiettivo formica per la creazione di zip come questo -Ant - Java - zipfileset - esclusa una directory

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

Questo crea fondamentalmente archivio myzip.zip con tutti i file e le directory sotto docs/manual prefisso docs/userguide nel archivio.

Ma io don' voglio includere tutte le directory sotto docs/manual da copiare nell'archivio, ho una directory chiamata old sotto docs/manual cui voglio escludere ... Come raggiungere questo obiettivo?

risposta

10

Dal ZipFileSet reference page

<zipfileset> supporta tutti gli attributi di <fileset> oltre a quelli elencati di seguito.

Quindi vedere FileSet come riferimento.

Ecco come si fa:

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

o inline come attributo:

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

Aggiornamento: Utilizzando i caratteri jolly ora invece di semplice nome.

+0

Grazie per la risposta, ma questo non sembra funzionare per escludere l'intera directory, Come mai potrei vedere che se uso un nome di file al posto di "vecchio", il file viene escluso. –

+0

OK, quindi è necessario utilizzare caratteri jolly. qualcosa come 'old/**' –

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

si può escludere un'intera directory da questo:

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

Questa risposta esclude tutti i file in quella directory AND la stessa directory. La risposta accettata sopra esclude solo il contenuto della directory quando l'ho provato, ma la directory stessa era ancora inclusa –

0

Questo è stato l'unico che ha funzionato per me per la rimozione del modello di file specifico

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