J'utilise Ivy pour publier un instantané d'un Jar construit dans un référentiel Nexus hébergé localement en utilisant la cible Ant suivante.Ivy: Récupération de Snapshot publiée dans Nexus et ses dépendances
<target name="publish">
<ivy:publish resolver="nexus_snapshot" pubrevision="SNAPSHOT" overwrite="true">
<artifacts pattern="${dist.dir}/[artifact].[ext]" />
</ivy:publish>
</target>
Cela semble fonctionner très bien, ce qui dans le pot et son ivy.xml associé étant présent dans le référentiel (avec les noms de fichiers mymodule-SNAPSHOT.jar et lierre SNAPSHOT.jar). Plus tard, dans un autre script de construction, je souhaite récupérer le Jar et ses dépendances associées (c'est-à-dire comme spécifié dans son ivy.xml) dans un répertoire.
Ceci est la cible Ant que j'utilise.
<target name="deploy">
<delete dir="deploy" />
<mkdir dir="deploy" />
<ivy:settings file="${ivy.dir}/ivy_deploy_settings.xml" />
<ivy:retrieve organisation="myorg" module="mymodule"
inline="true" revision="SNAPSHOT" pattern="deploy/[artifact].[ext]"/>
</target>
Ceci récupère le Jar dans le répertoire, mais pas ses dépendances. De plus, si j'ajoute
conf="impl"
à récupérer, il échoue que la configuration est introuvable. En tant que tel, il semble que la récupération ne fait simplement pas référence au fichier ivy.xml et donc ne résout pas les dépendances.
Est-ce que cela devrait fonctionner ou est-ce que je ne comprends pas quelque chose?
Vous pouvez simplement ajouter le fichier pom à votre liste d'artefacts publiés, dans le fichier ivy.xml. De cette manière, la tâche de publication le récupère à l'aide de l'attribut de modèle d'artefacts –