La création d'un bundle pot avec ant
Je suis en utilisant Ant pour la construction de certains projets Java.
Dans certains, j'ai un lib/
répertoire, qui contient des liens externes, dans le formulaire sur les fichiers JAR.
Lors de la compilation, j'ai créer un groupés pot, qui contient le code du projet, aux côtés de l'dépendances, en ajoutant à l'bundle fichier jar un zipfileset
pour chacun des pots dans la lib/
répertoire.
Le problème, c'est que chaque fois que j'ajoute un bocal, ou un changement de noms, j'ai besoin de vous rappeler de mettre à jour le build.xml
fichier, que je ne pouvais pas trouver un moyen pour l'ajout de ces zipfilesets
dans un système automatique de manière à inclure tous les pots dans un certain modèle (par exemple,lib/*.jar
).
Est-il une meilleure façon de faire cela?
J'ai envisagé d'écrire ma propre Tâche Ant pour cela, ou à l'aide de Groovy de la fourmi API pour faire de la programmation, mais je me demandais si il existe un moyen pour faire cela à l'aide de la "vanille" ant.
Vous devez vous connecter pour publier un commentaire.
Dans ma cible, j'ai quelque chose comme ceci:
Et voici comment je construis mon classpath:
mf.classpath est utilisé à partir du package cible affichée ci-dessus.
Cette partie, j'ai copié de quelque part d'autre, donc je ne suis pas du tout familier avec elle.
D'édition rapide.
Javac besoin de savoir au sujet de ces pots trop.
build.xml
(the big picture) qui est manquant dans cette réponse: mkyong.com/ant/ant-create-a-fat-jar-fileUtiliser un
zipgroupfileset
. Par exemple:La
zipgroupfileset
est documentée par l' Zip tâche.Pour ceux d'entre vous à l'aide de NetBeans voici comment vous pouvez créer une archive JAR avec les bibliothèques regroupés à l'aide de zipgroupfileset:
J'ai ajouté cette définition de l'objectif à la fin de build.xml fichier. Nom de la cible est post-jar.
Voici un exemple simple d'une cible ant qui permettra de créer un jar (nommé test.jar) qui inclut tous les fichiers jar dans le répertoire lib du répertoire. Peut-être que cela permettra de résoudre votre problème?