2009-07-29 15 views
27

Dans le cadre d'un déploiement automatisé, j'ai besoin d'un script pour télécharger la dernière version d'un artefact depuis notre dépôt interne.Comment trouver la dernière version d'un artefact à partir d'un dépôt maven?

Idéalement, ce script sera avec ant ou un script shell Unix.

Ainsi, par exemple:

je myArtifact.war et il a des versions 1.0, 1.1 et 2.0 - J'ai besoin du script donné l'identifiant de groupe correct et id artefact pour récupérer la version 2.0 de notre repository (actuellement à l'aide artificiel).

Y a-t-il un moyen facile de le faire?

Répondre

12

Vous pouvez analyser le fichier maven-metadata.xml pour voir quelles versions sont disponibles et quelle version est la version "release". Voir cette réponse à propos de plugin versions pour plus de détails. Si vous utilisez Nexus, vous pouvez utiliser REST API pour interroger le référentiel. Vous pouvez également utiliser le REST client API pour simplifier votre traitement.

Pour mettre à jour la version, activer la libération profil dans le Maven super POM lorsque vous faites mvn deploy. Vous pouvez le faire en ajoutant -Prelease-profile ou -DperformRelease = true à la ligne de commande.

Le profil est activé par défaut dans l'objectif d'exécution de maven-release-plugin. Il est contrôlé par la propriété useReleaseProfile. Voir la documentation de l'objectif release-perform pour plus de détails.

+0

+1 C'est génial - juste une question pour mes propres artefacts comment puis-je configurer ce qui est la « libération » version. Si j'utilise le plugin de lancement de maven, le fera-t-il automatiquement? – Pablojim

+0

Mis à jour ma réponse –

17

Vous pouvez utiliser l'objectif plugin Maven Dependency get avec LATEST en tant que version pour votre artefact:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get 
    -DremoteRepositories=<URL_to_your_maven_repo> 
    -Dartifact=<group_id>:<artifact_id>:LATEST 
    -Dpackaging=jar 
    -Ddest=<target_dir>/<artifact_name>.jar 
+1

http://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html –