2010-10-22 35 views
13

如何使用Ant解壓縮特定文件夾?如何解壓縮特定的文件夾?

具體來說,我已經下載了包含文件夾「apache-tomcat-6.0.29」的apache-tomcat-6.0.29.zip。我希望Ant將「apache-tomcat-6.0.29」下的所有內容解壓縮,但不包括層次結構頂部的「apache-tomcat-6.0.29」。

我試了一堆東西,但我似乎無法得到它的工作。

這裏是我的最新嘗試:

<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}"> 
    <patternset> 
     <include name="apache-tomcat-6.0.29/*"/> 
    </patternset> 
</unzip> 

任何想法?

回答

12

您可以在解壓縮任務中使用mapper來更改寫入的路徑。

<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}"> 
    <patternset> 
     <include name="apache-tomcat-6.0.29/*"/> 
    </patternset> 
    <mapper> 
     <globmapper from="apache-tomcat-6.0.29/*" to="*"/> 
    </mapper> 
</unzip> 
+1

謝謝。這工作: sproketboy 2010-10-22 15:40:02

+2

您不需要模式設置部分。 – sproketboy 2010-10-22 18:15:37

+0

我能夠脫離該文件夾,但子文件夾內沒有任何文件被複制到目標目錄。任何想法可能是什麼原因?例如:w.r.t上面的例子中,bin文件夾中的文件都沒有被複制,bin文件夾是空的。我正在使用與您所提到的完全相同的方式。 – 2013-04-01 14:06:11

3

以下工作只要在tomcat存檔中有一個目錄。

<untar src="${release.dir}" dest="${tomcat.tar.gz}" compression="gzip"> 
    <cutdirsmapper dirs="1" /> 
</untar> 
0
<unzip dest="${release.dir}/image/tomcat" src="${tomcat.zip}"> 
    <patternset> 
     <!-- add another star --> 
     <include name="apache-tomcat-6.0.29/**"/> 
    </patternset> 
</unzip> 
相關問題