2010-08-20 191 views
1

我有以下結構的zip文件螞蟻副本文件夾

apache-tomcat-6.0.26.zip 的apache-tomcat的-6.0.26/webapps /目錄經理

我想僅複製經理夾到另一個目錄

我試圖

<copy todir="${tomcat.webapp.dir}/manager/" includeEmptyDirs="true"> 
<zipfileset src="${tomcat.zip.file}/" > 
    <patternset> 
    <include name="apache-tomcat-${tomcat.version}/webapps/manager" /> 
    </patternset> 
</zipfileset> 
</copy> 

的輸出管理器文件夾包含以下結構 apache- Tomcat的6.0.26/webapps /目錄經理。我只需要經理文件夾及其內容,而不是其父母。

試圖改變到,但得到一個錯誤味精,該文件夾是不是archieve

回答

6

使用patternset限制文件進行解壓縮後,再加上剝去領先的目錄名稱映射

<unzip src="apache-tomcat-${tomcat.version}.zip" dest="${tomcat.webapp.dir}/manager"> 
    <patternset> 
     <include name="**/webapps/manager/**"/> 
    </patternset> 
    <globmapper from="apache-tomcat-${tomcat.version}/webapps/manager/*" to="*"/> 
</unzip> 
+0

真棒,感謝一噸 – user373201 2010-08-25 02:36:23

2

這裏是我的解決方案:

<copy todir="${tomcat.webapp.dir}/manager/" includeEmptyDirs="true"> 
<zipfileset src="${tomcat.zip.file}/" prefix="apache-tomcat-${tomcat.version}/webapps" > 
    <patternset> 
    <include name="apache-tomcat-${tomcat.version}/webapps/manager" /> 
    </patternset> 
</zipfileset> 
</copy> 

我強烈不喜歡<unzip>任務,因爲它失敗時,它沒有給錯誤s(<copy>的默認值是錯誤失敗,這正是你想要的內部版本。)