Blaine の回答を拡張するには、
<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>
Linux/Unix ファイルのアクセス許可を ZIP ファイルに保存することはできません。
編集 (コメントの後) ZIP ヘッダー内の「外部属性」フィールドを使用すると、これらの属性を ZIP ファイル内に保存できます。 GNU の unzip
その追加フィールドを読み取って、ファイルのアクセス許可を復元できるようです。
「ネイティブ」の Unix/Linux 形式である TAR 形式は、ファイル属性を含めるように設計されており、Ant はすべての Linux/Unix オペレーティング システムで属性を保持する TAR ファイルを作成できます。
<tar compression="gzip" destfile="my-archive.tgz"> <tarfileset mode="544" dir="dir_with_shell_scripts"> <include name="*.sh"/> </tarfileset> </tar>
これは Apache Commons Compress でできると思います。
最初の段落:
<ブロック引用>内部および外部属性へのアクセス (一部の zip 実装で Unix 許可を保存するために使用されます)。
API を見て、setUnixMode()
を探します。
tar ファイルに切り替える必要はありません。 Ant を知らない人がこのトピックについてアドバイスを提供している理由がわかりません。
zipfileset の filemode パラメータを使用します。 http://ant.apache.org/manual/Types/zipfileset.html で文書化