Pour développer la réponse de Blaine, vous pouvez utiliser les éléments enfants
<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>
Vous ne pouvez pas stocker les autorisations de fichiers Linux/Unix dans un fichier ZIP.
Modifier (après les commentaires) en utilisant le champ "attributs externes" dans l'en-tête ZIP, ces attributs peuvent être stockés dans un fichier ZIP. unzip
de GNU est apparemment capable de lire ce champ supplémentaire et de restaurer les autorisations de fichier.
Le format TAR - étant un format Unix/Linux "natif" - a été conçu pour inclure des attributs de fichier et Ant peut créer des fichiers TAR qui conserveront les attributs sur tous les systèmes d'exploitation Linux/Unix.
<tar compression="gzip" destfile="my-archive.tgz"> <tarfileset mode="544" dir="dir_with_shell_scripts"> <include name="*.sh"/> </tarfileset> </tar>
Je pense que vous pouvez le faire avec Apache Commons Compress.
Premier paragraphe :
Accès aux attributs internes et externes (qui sont utilisés pour stocker l'autorisation Unix par certaines implémentations zip).
Jetez un œil à l'API et recherchez setUnixMode()
Vous n'avez pas besoin de passer aux fichiers tar. Je ne sais pas pourquoi des gens qui ne connaissent pas Ant proposent des conseils sur ce sujet.
Utilisez le paramètre filemode de zipfileset. Documenté sur http://ant.apache.org/manual/Types/zipfileset.html