Ant: Zip le contenu d'un répertoire, sans le répertoire de niveau supérieur lui-même
Comment puis-je utiliser Ant pour créer des zip contenant tous les fichiers et répertoires imbriqués à l'intérieur de certaines répertoire racine, mais exclure le répertoire de niveau supérieur de la zip.
Par exemple, dire que j'ai cette structure de fichier:
/foo
splat.js
/bar
wheee.css
Je veux le zip contient splat, et wheee intérieur /bar, mais je ne pas voulons tous que pour être contenue à l'intérieur d'un 'foo' annuaire. En d'autres termes, la décompression en /honk devrait pas créer un répertoire foo; splat et la barre de fin jusqu'à la racine de /honk.
Je suis actuellement à l'aide de ce (les détails superflus supprimé):
<zip destfile="${zipfile}" basedir="" includes="${distRoot}/**/*.*" />
Ce genre de fileset sélectionnez pouvez remplacer ce 'comprend' spec pour y parvenir?
<fileset dir="foo" includes="**/*" />
au lieu de l'identification de l'aide? Ou basedir="foo" includes="**/*"
+1 pour mihi commentaire, voir aussi: ant.apache.org/manual/Tasks/zip.html - il décrit comment utiliser fileset comme éléments imbriqués dans le zip de la tâche.
Merci les gars, c'est exactement ce dont j'ai besoin, je pense, va vérifier plus en profondeur quand j'ai le temps:
<zip destfile="${zipfile}" basedir="${distRoot}" includes="**/*" />
. @mihi, si vous apporter une réponse, je vais le marquer correcte.Lié avec une solution sympa: stackoverflow.com/q/22759314/435605
OriginalL'auteur enigment | 2012-02-02
Vous devez vous connecter pour publier un commentaire.
Il n'est pas dynamique, mais en utilisant le nom de chemin complet attribut permet de définir le chemin d'accès struture du fichier zip. Voir la documentation de ant: http://ant.apache.org/manual/Types/zipfileset.html
Cela peut vous obtenir ce que vous voulez de façon dynamique. Il devrait se retirer en tout dans le foo dir puis la fermeture-éclair. C'est juste quelques étapes supplémentaires.
OriginalL'auteur Makeen A. Sabree