2010-10-22 35 views
13

¿Cómo puedo descomprimir una carpeta específica con Ant?¿Cómo puedo descomprimir una carpeta específica?

Específicamente, he descargado apache-tomcat-6.0.29.zip que contiene la carpeta "apache-tomcat-6.0.29". Quiero que Ant descomprima todo en "apache-tomcat-6.0.29" pero no incluya "apache-tomcat-6.0.29" en la parte superior de la jerarquía.

He intentado muchas cosas, pero parece que no puedo hacer que funcione.

Aquí es mi último intento:

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

¿Alguna idea?

Respuesta

12

Puede usar mapper en la tarea de descomprimir para cambiar las rutas escritas.

<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

Gracias. Esto funcionó: sproketboy

+2

No necesita la sección de conjunto de patrones tampoco. – sproketboy

+0

Puedo salirme con la carpeta pero ninguno de mis archivos dentro de la subcarpeta se copia en el directorio de destino. ¿Alguna idea de cual podría ser el motivo? Por ejemplo: w.r.t ejemplo anterior, ninguno de los archivos en la carpeta bin se copia y la carpeta bin está vacía. Estoy usando las cosas exactamente de la misma manera que has mencionado. –

3

Lo siguiente funciona siempre y cuando haya un único directorio en el archivo 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> 
Cuestiones relacionadas