2010-10-22 20 views
13

Come posso decomprimere una cartella specifica con Ant?Come posso decomprimere una cartella specifica?

In particolare, ho scaricato apache-tomcat-6.0.29.zip che contiene la cartella "apache-tomcat-6.0.29". Voglio che Ant decomprimi tutto sotto "apache-tomcat-6.0.29" ma non includa "apache-tomcat-6.0.29" nella parte superiore della gerarchia.

Ho provato un sacco di cose, ma non riesco a farlo funzionare.

Ecco il mio ultimo tentativo:

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

Tutte le idee?

risposta

12

È possibile utilizzare un mapper all'interno dell'attività di decompressione per modificare i percorsi scritti.

<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

Grazie. Questo ha funzionato: sproketboy

+2

Non è necessaria neanche la sezione del set di schemi. – sproketboy

+0

Sono in grado di scappare con la cartella ma nessuno dei miei file all'interno della sottocartella viene copiato nella directory di destinazione. Qualche idea su quale potrebbe essere la ragione? Ad esempio: w.r.t sopra l'esempio, nessuno dei file nella cartella bin viene copiato e la cartella bin è vuota. Sto usando le cose esattamente nello stesso modo in cui hai menzionato. –

3

Quanto segue è lungo quanto esiste una singola directory nell'archivio 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> 
Problemi correlati