我試圖創建2個zip文件作爲螞蟻任務的一部分。兩者都相似,但其中一個包含一些額外的數據。所以爲了減少代碼,我想定義一個文件集並引用它。唯一的問題是產生一個錯誤。通過refid創建zip文件時出錯
任務:
<target name="create-zips" depends="cleanup, compile, package-jar">
<zipfileset id="zipfiles">
<zipfileset dir="${ant.project.name}-dist" includes="${jarname}.jar" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui.command" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram.bat" filemode="755" prefix="${title}"/>
<zipfileset dir="${scripts.dir}" includes="myprogram_gui.bat" filemode="755" prefix="${title}"/>
<zipfileset dir="${docs.dir}" includes="myprogram_readme.txt" prefix="${title}"/>
</zipfileset>
<zip destfile="${deploy.dir}/myprogram_${version}.zip" whenempty="fail" defaultexcludes="true">
<zipfileset refid="zipfiles"/>
<zipfileset dir="${otherdata.dir}" includes="other/*.*" prefix="${title}"/>
</zip>
<zip destfile="${deploy.dir}/myprogram_noother_${version}.zip" whenempty="fail" defaultexcludes="true">
<zipfileset refid="zipfiles"/>
</zip>
</target>
當運行任務:
create-zips:
BUILD FAILED
/path/to/my/buildfile/build-tools.xml:119: Problem opening /path/to/my/data/docs/myprogram_readme.txt
我已經驗證該文件存在。刪除自述文件只包括使錯誤發生在不同的文件上。另外,如果我只是將zipfileset複製並粘貼到2個單獨的標籤中,一切正常。但我寧願不這樣做。
編輯:Apache Ant(TM)版本1.8.2編譯於2011年10月14日,Mac OS X 10.7。還沒有嘗試過任何其他平臺。
這樣做有一定的意義,儘管嵌套文件集會很好。我可能在我的情況下使用選擇器,因爲所有相關文件都有一個父目錄。 – node1377 2012-02-29 14:51:53
但我想起了另一個問題。我無法剪切路徑,並且zip從根目錄到文件都保留了整個路徑。也許你會以某種方式修復它。 – Jarekczek 2012-02-29 17:12:58