Comment configurer Ivy pour Ant build
J'ai actuellement ANT_HOME
situé à /home/<myuser>/ant/1.8.4/ant-1.8.4
.
Je viens de télécharger l'Apache Ivy tarball qui comprend ses dépendances. J'ai extrait à /home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1
.
J'ai ensuite copié /home/<myuser>/ivy/2.3.0-rc1/ivy-2.3.0-rc1/lib/*.jar
à ANT_HOME/lib
. Si ma compréhension de la façon dont Ant fonctionne avec des plugins/extensions est correcte, alors les Fourmis devraient maintenant être en mesure d'accéder à l'ensemble de Lierre de tâches lors de l'exécution.
Ma prochaine question est, comment puis-je définir le Lierre tâches à l'intérieur de mon Ant buildfile? Dire que je veux utiliser ivy-retrieve
ivy-resolve
et ivy-publish
tâches. Quelles sont toutes les configurations j'ai besoin de le faire (en XML) pour obtenir ces tâches de travail, quand je lance mon Ant construire à partir de la ligne de commande (je ne vais pas être le renforcement par l'Ant-plugin Eclipse). Merci à l'avance!
source d'informationauteur IAmYourFaja | 2012-09-11
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez définir un
<taskdef>
à point pour le Lierre tâches.Qui vous donnera accès à l'Ivy tâches. Vous pouvez utiliser ces tâches comme ceci:
Le problème, c'est que votre Lierre tâches noms qui pourraient entrer en conflit avec d'autres tâches Ant. Par exemple, il y a un Lierre tâche
<report>
. Pour résoudre ce problème, vous pouvez créer un Lierre d'espace de noms. Pour ce faire, vous mettez une référence dans votre espace de noms dans la<project>
entité comme ceci:Maintenant, lorsque vous définissez le Lierre tâches, vous pouvez l'utiliser
antlib:org.apache.ivy.ant
référence à votreivy
espace de noms. Même taskdef comme avant, mais avec unuri
champ:Par le façon, il n'y a rien de spécial
uri
. J'aurais pu faire ceci:Le point est maintenant, vous pouvez ajouter un préfixe de vos noms de tâches avec
ivy:
. Au lieu de cela:Vous pouvez désormais le faire:
Et c'est la façon dont vous gagnez de l'accès à votre Lierre tâches Ant.
Maintenant, vous avez accès à votre Lierre tâches Ant, vous devez définir une
ivysettings.xml
fichier et utiliser la<ivy:settings/>
tâche à point:Il y a un défaut
ivysettings.xml
de fichiers intégré dans le Lierre qui vous permettra de le world wide repository Maven système. Si vous n'avez pas une échelle de l'entreprise repository Maven, vous pouvez utiliser la valeur par défautivysettings.xml
fichier:C'est assez simple.
Une fois que vous avez fait cela, vous avez besoin pour lire et résoudre votre
ivy.xml
fichier qui se trouve dans la racine de votre projet dans le même répertoire que votrebuild.xml
fichier.Fondamentalement, votre
ivy.xml
fichier contient des références à la troisième partie des bocaux que vous devez apporter à votre projet. Par exemple:Ce que c'est dit, c'est que j'ai besoin de la
log4j.jar
(révision 1.2.17) pour la compilation (et pour la compilation des tests de trop) et j'ai besoin dejunit.jar
(révision.4.10) pour la compilation de mon code de test.La
compile->default
est une cartographie de moncompile
de configuration de Maven estdefault
de configuration (qui dit que je veux juste le Pot et autres pots qu'il pourrait en dépendre.Où est mon
compile
configuration venir? Je définis dans monivy.xml
. Il y a dix configurations standard. Cela va aussi dans votreivy.xml
fichier:Vous pouvez utiliser n'importe quel nom de la configuration que vous voulez, mais ils correspondent à la valeur par défaut de Maven configurations et sont largement utilisés.
Une fois que vous avez votre
ivy.xml
fichier défini, vous pouvez utiliser<ivy.resolve>
pour résoudre vos dépendances:Donc, nous avons les éléments suivants:
<taskdef>
dans votrebuild.xml
à intégrer le Lierre des tâches Ant dans votre build.<ivy:settings>
pour configurer le Lierre.<ivy:resolve/>
à lire dans votreivy.xml
fichier et résoudre votre tiers pot dépendances.Maintenant, vous pouvez réellement utiliser ces fichiers jar. Il y a trois façons de le faire:
La
<ivy:cachepath/>
tâche sera de créer un chemin de classe (dans ce cas appelé principal.classpath) qui pointe vers les pots que vous avez dans votreivy.xml
du fichiercompile
de configuration. Il est utilisé la plupart du temps.Si vous avez besoin d'un fileset, vous pouvez utiliser ceci:
Dans ce cas, il va créer un fileset avec un refid de
compile.fileset
.Parfois, vous devez mettre les bocaux dans votre projet. Par exemple, si vous créez une guerre ou d'un fichier ear, vous voulez placer vos pots. Dans ce cas, vous pouvez utiliser ceci:
Qui va aller chercher vos bocaux dans la
${lib.dir}
répertoire, de sorte que vous pouvez les inclure dans des guerres ou des oreilles.Désolé pour la réponse longue, mais il y a beaucoup d'étapes à couvrir. Je recommande fortement de Manning livre Ant dans l'Action qui a un chapitre entier sur Lierre.
David a donné une très belle réponse, mais je tiens à souligner que le taskdef n'est pas nécessaire.
Pourvu que le ivy.jar est dans l'emplacement prévu de la déclaration d'espace de noms en haut de la FOURMI fichier est assez:
Pour plus de détails, je vous recommande la lecture sur la façon ANT libs travail.
La réponse suivante fournit un peu plus de la configuration de lierre" conseils: