web-dev-qa-db-fra.com

Comment fournir un accès URL au dernier instantané d'un artefact dans Nexus 2.x?

J'aimerais fournir une URL simple qui renvoie toujours la dernière version d'une version avec instantané d'un artefact. Par simple j'entends que l'URL ne change pas ou demande à l'utilisateur de parcourir le répertoire et d'examiner les horodatages.

39
chad

Veuillez noter que cette réponse concerne Nexus 2.X

La "redirection" principale de Nexus API REST peut être utilisée pour extraire toute version d'un artefact d'un référentiel désigné:

Par exemple:

https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST

Le paramètre v peut être une valeur telle que 1.0-SNAPSHOT, auquel cas Maven renverra le dernier instantané horodaté contenu dans le référentiel. De même, la valeur spéciale "LATEST" devrait faire de même, à condition qu'aucune version publiée plus récente ne soit présente.

60
Mark O'Connor

Si vous recherchez la dernière version d'un instantané, il suffit de demander, par exemple, "1.0-SNAPSHOT" renverra la dernière version de l'instantané de cet artefact.

Si vous recherchez "dernière version", la syntaxe "v = LATEST" fonctionnera, mais gardez à l'esprit que ce mot clé peut renvoyer la dernière version de l'instantané que vous recherchez ou la version qui vient de se terminer ou cette autre branche de ce même artefact qui est une version à venir et toujours à "-SNAPSHOT".

Si vous recherchez les dernières nouveautés, alors utilisez le "v = LATEST". Si vous recherchez la dernière version, vous pouvez également demander "v = RELEASE". Si vous avez un groupe de pensions, vous pouvez référencer les dépôts de capture instantanée et de dépôt en ajoutant à l'URL quelque chose comme:

"... v = RELEASE & r = public"

Cela devrait chercher dans tous vos dépôts "groupés".

3
EJC

on my nexus machine tous les résultats pour:

http://nexushost.domain/nexus/content/repositories/snapshots/com/company/elasticsearch-river-mongodb/1.2.3-SNAPSHOT/

sont comme ça: * - 1.2.3-20131204.143026-1.Zip

je ne peux donc pas y accéder directement car je dois fournir davantage de détails dynamiques.

L'exemple avec "... redirect? R = central-proxy & g = log4j & a = log4j & v = LATEST" fonctionne si j'ouvre dans le navigateur mais pas quand je dois l'installer à partir d'une machine Linux en utilisant:

/usr/share/elasticsearch/bin/plugin --url "http://localhost:8081/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.comapny.application&a=elasticsearch-river-mongodb&v=1.2.3-SNAPSHOT&p=Zip" --install river-mongodb

Donc, ma solution temporaire utilise wget:

wget -O /tmp/elasticsearch-river-mongodb.Zip "http://nexushost.domain/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.comapny.application&a=elasticsearch-river-mongodb&v=1.2.3-SNAPSHOT&p=Zip"

puis installez la dernière version à partir du fichier local.

2
matei.nick

Chaque référentiel a sa propre URL (vous pouvez le voir dans le navigateur de référentiel). Si vous l'ouvrez, vous pouvez parcourir le groupe et les identifiants d'artefact menant à votre artefact. C'est votre URL, par exemple, comme ceci: http: //nexushost.domain/content/repositories/snapshots/com/example/group/artifact/1.2.3-SNAPSHOT/1.2.3-SNAPSHOT.jar

0
dunni