2009-03-18 11 views
2

Je veux parcourir une liste de fichiers jar (nombre indéfini) et les ajouter tous au fichier jar. Pour les ajouter, je prévois d'utiliser quelque chose comme ceci:ant itérer sur les fichiers

<jar id="files" jarfile="all.jar"> 
    <zipfileset src="first.jar" includes="**/*.java **/*.class"/> 
    <zipfileset src="second.jar" includes="**/*.java **/*.class"/> 
</jar> 

mais comment puis-je itérer sur eux? Je n'ai pas d'ant-contribution

Merci!

Répondre

4

Si vous n'avez pas accès à ant-contribFor task, vous pouvez finir par devoir définir votre custom Task pour faire ce dont vous avez besoin ...

Si vous avez ant1.6 et au-dessus, vous pouvez aussi essayer subant (voir New Ant 1.6 Features for Big Projects):

Si vous utilisez <subant> « s genericantfile attribuent fonctionne un peu comme une cible <antcall> invoquer dans le même fichier de construction qui contient la tâche.
Contrairement à <antcall>, <subant> prend une liste ou un ensemble de répertoires et invoque la cible une fois pour chaque répertoire définissant le répertoire de base du projet.

Ceci est utile si vous voulez effectuer exactement la même opération dans un nombre arbitraire de répertoires.

+0

oui, ce serait la bonne réponse! fonctionne très bien pour moi! merci pour l'info, voir aussi http://www.softwarebyrichard.com/content/iterating-through-directory-ant –

4

Il suffit d'utiliser zipgroupfileset avec la fourmi Zip task

<zip destfile="out.jar"> 
    <zipgroupfileset dir="lib" includes="*.jar"/> 
</zip> 

Cela aplatir le contenu de toutes les bibliothèques jar inclus.

+0

J'ai essayé ceci, et cela fonctionne - Mais je rencontre des erreurs de classe n'existe pas quand je cours le pot - c'est comme s'il ne sait pas qu'ils sont là (mais ça compile ...) – Yossale

Questions connexes