Chcete-li rozšířit Blaineovu odpověď, můžete k určení oprávnění použít podřízené prvky
<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>
Do souboru ZIP nemůžete uložit oprávnění k souboru Linux/Unix.
Upravit (po komentářích) pomocí pole "externí atributy" v záhlaví ZIP lze tyto atributy uložit do souboru ZIP. GNU unzip
je zjevně schopen číst toto další pole a obnovit oprávnění souboru.
Formát TAR – je to „nativní“ formát Unix/Linux – byl navržen tak, aby zahrnoval atributy souborů a Ant může vytvářet soubory TAR, které zachovají atributy ve všech operačních systémech Linux/Unix.
<tar compression="gzip" destfile="my-archive.tgz"> <tarfileset mode="544" dir="dir_with_shell_scripts"> <include name="*.sh"/> </tarfileset> </tar>
Myslím, že to můžete udělat s Apache Commons Compress.
První odstavec:
Přístup k interním a externím atributům (které některé implementace zipu používají k ukládání oprávnění Unix).
Podívejte se na API a vyhledejte setUnixMode()
Nemusíte přepínat na soubory tar. Nevím, proč lidé, kteří Ant neznají, nabízejí rady na toto téma.
Použijte parametr filemode souboru zipfileset. Dokumentováno na http://ant.apache.org/manual/Types/zipfileset.html