Um Blaines Antwort zu erweitern, können Sie
<zip destfile="build/MyApplication.zip" encoding="UTF-8">
<zipfileset dir="${content-dir}" encoding="UTF-8"
includes="**/setup.sh" filemode="755"/>
<zipfileset dir="${content-dir}" encoding="UTF-8"
excludes="**/setup.sh"/>
</zip>
Sie können Linux/Unix-Dateiberechtigungen nicht in einer ZIP-Datei speichern.
Bearbeiten (nach Kommentaren) Durch die Verwendung des Feldes "externe Attribute" im ZIP-Header können diese Attribute in einer ZIP-Datei gespeichert werden. GNUs unzip
ist anscheinend in der Lage, dieses zusätzliche Feld zu lesen und Dateiberechtigungen wiederherzustellen.
Das TAR-Format – ein „natives“ Unix/Linux-Format – wurde entwickelt, um Dateiattribute einzuschließen, und Ant kann TAR-Dateien erstellen, die Attribute über alle Linux/Unix-Betriebssysteme hinweg beibehalten.
<tar compression="gzip" destfile="my-archive.tgz"> <tarfileset mode="544" dir="dir_with_shell_scripts"> <include name="*.sh"/> </tarfileset> </tar>
Ich denke, Sie können dies mit Apache Commons Compress tun.
Erster Absatz:
Zugriff auf interne und externe Attribute (die von einigen ZIP-Implementierungen zum Speichern von Unix-Berechtigungen verwendet werden).
Sehen Sie sich die API an und suchen Sie nach setUnixMode()
Sie müssen nicht zu tar-Dateien wechseln. Ich weiß nicht, warum Leute, die Ant nicht kennen, Ratschläge zu diesem Thema geben.
Verwenden Sie den filemode-Parameter von zipfileset. Dokumentiert unter http://ant.apache.org/manual/Types/zipfileset.html