2010-11-22 2 views
6

ich für die Erstellung von zip wie dies eine Ameise Ziel habe -Ant - Java - zipfileset - ohne ein Verzeichnis

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

Dies schafft im Grunde Archiv myzip.zip mit allen Dateien und Verzeichnisse unter docs/manual mit dem Präfix docs/-Nutzerhandbuch in der Archiv.

Aber ich don‘wollen unter docs/manual alle Verzeichnisse enthalten in das Archiv kopiert werden, Ich habe ein Verzeichnis old unter docs/manual genannt, die ich ... Wie ausschließen wollen, dies zu erreichen?

Antwort

10

Vom ZipFileSet reference page

<zipfileset> unterstützt alle Attribute von <fileset> zusätzlich zu den unten aufgeführten.

So siehe FileSet als Referenz.

Dies ist, wie Sie es tun:

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

oder Inline als Attribut:

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

Update: Platzhalter jetzt anstelle von einfachen Namen.

+0

Vielen Dank für Ihre Antwort für mich für die Entfernung von bestimmten Dateimuster gearbeitet, aber dies scheint nicht zu funktionieren, um das gesamte Verzeichnis auszuschließen. Wie auch immer ich sehen konnte, dass die Datei ausgeschlossen wird, wenn ich einen Dateinamen anstelle von "alt" verwende. –

+0

OK, dann müssen Sie Ameisen Wildcards verwenden. etwas wie 'alt/**' –

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

können Sie ein ganzes Verzeichnis von dieser auszuschließen:

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

Diese Antwort schließt alle Dateien in diesem Verzeichnis UND das Verzeichnis selbst aus. Die obige Antwort ignoriert nur den Inhalt des Verzeichnisses, als ich es ausprobierte, aber das Verzeichnis selbst war noch enthalten –

0

Dies war die einzige, die

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