2010-10-22 30 views
13

Comment puis-je décompresser un dossier spécifique avec Ant? En particulier, j'ai téléchargé apache-tomcat-6.0.29.zip qui contient le dossier "apache-tomcat-6.0.29". Je veux qu'Az puisse tout décompresser sous "apache-tomcat-6.0.29" mais pas "apache-tomcat-6.0.29" dans le haut de la hiérarchie.Comment puis-je décompresser un dossier spécifique?

J'ai essayé pas mal de choses, mais je n'arrive pas à le faire fonctionner.

Voilà ma dernière tentative:

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

Toutes les idées?

Répondre

12

Vous pouvez utiliser un mapper dans la tâche de décompression pour modifier les chemins écrits.

<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

Merci. Cela a fonctionné: sproketboy

+2

Vous n'avez pas non plus besoin de la section d'ensemble de motifs. – sproketboy

+0

Je suis capable de sortir avec le dossier, mais aucun de mes fichiers à l'intérieur du sous-dossier n'est copié dans le répertoire de destination. Une idée de ce qui pourrait être la raison? Par exemple: w.r.t ci-dessus, aucun des fichiers du dossier bin n'est copié et le dossier bin est vide. J'utilise le matériel exactement de la même manière que vous l'avez mentionné. –

3

Ce qui suit fonctionne tant qu'il n'y a qu'un seul répertoire dans l'archive 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>