2010-10-22 24 views
13

Làm cách nào để giải nén một thư mục cụ thể với Ant?Làm cách nào để giải nén một thư mục cụ thể?

Cụ thể, tôi đã tải xuống apache-tomcat-6.0.29.zip chứa thư mục "apache-tomcat-6.0.29". Tôi muốn Ant giải nén mọi thứ dưới "apache-tomcat-6.0.29" nhưng không bao gồm "apache-tomcat-6.0.29" ở đầu hệ thống phân cấp.

Tôi đã thử nhiều thứ, nhưng tôi dường như không làm cho nó hoạt động.

Đây là nỗ lực mới nhất của tôi:

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

Bất kỳ ý tưởng?

Trả lời

12

Bạn có thể sử dụng mapper trong tác vụ giải nén để thay đổi đường dẫn được viết.

<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

Cảm ơn. Điều này làm việc: sproketboy

+2

Bạn không cần phần thiết lập mẫu. – sproketboy

+0

Tôi có thể thoát khỏi thư mục nhưng không có tệp nào trong thư mục con của tôi được sao chép vào thư mục đích. Bất kỳ ý tưởng nào có thể là lý do? Ví dụ: ví dụ trên w.r.t, không có tệp nào trong thư mục bin được sao chép và thư mục bin trống. Tôi đang sử dụng các công cụ chính xác giống như cách bạn đã đề cập. –

3

Các công trình sau đây miễn là có một thư mục duy nhất trong kho lưu trữ 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> 
Các vấn đề liên quan