Comment dois-je fournir les URL d'accès à la dernière version d'un objet dans le programme Nexus 2.x?
Je tiens à fournir une URL simple qui retourne toujours la version la plus récente d'une version de capture instantanée d'un objet. En simple, je veux dire que l'URL ne change pas, ou demander à l'utilisateur de parcourir le répertoire et d'examiner les horodatages.
- J'ai eu exactement la même question. Je suis en train d'écrire des scripts de téléchargement des artefacts de la Nexus et la dynamique des Url pour les instantanés où ennuyeux.
Vous devez vous connecter pour publier un commentaire.
Le core Nexus "rediriger" API REST peut être utilisé pour récupérer une version d'un objet à partir d'un nommé référentiel:
Par exemple:
https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=log4j&a=log4j&v=LATEST
La v paramètre peut être une valeur comme 1.0-SNAPSHOT, auquel cas Maven sera de retour plus tard horodaté instantané tenue dans le référentiel. Similiarily la valeur spéciale "DERNIÈRE" devrait faire de même de façon plus récente version n'est pas présent.
releases
alors commencé à2.1-SNAPSHOT
, leresolve
etredirect
de l'API sont toujours à la fois le retour de la 2.0 artefact avecv=LATEST
. lorsque j'utilisev=2.1-SAPSHOT
- je obtenir le résultat attendu. Mes params sontresolve?g=gid&a=artifactName&v=LATEST&r=snapshots&p=jar
oùgid
etartifactName
sont les références.Si vous êtes à la recherche de la dernière version d'un instantané, posant juste pour dire, "1.0-SNAPSHOT" sera de retour la dernière version de cet artefact est instantané.
Si vous êtes à la recherche pour la "dernière version" toutefois, le "v=DERNIER" de la syntaxe du travail, mais gardez à l'esprit que ce mot-clé peut retourner la dernière version de l'instantané que vous cherchez pour, ou de la libération qui vient de s'achever, ou que l'AUTRE branche de la même artefact qui est une version de l'avant et toujours à "INSTANTANÉ".
Si vous êtes à la recherche de l'absolu dernière alors oui, utiliser le "v=DERNIER". Si vous êtes à la recherche de la dernière version, vous pouvez également demander "v=LIBÉRATION". Si vous avez un groupement de repos, vous pouvez référencer instantané repos et la libération des référentiels en ajoutant à l'url quelque chose comme:
"...v=VERSION&r=public"
Que doit rechercher dans l'ensemble de votre "regroupées" repos.
sur mon 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 ceci:
*-1.2.3-20131204.143026-1.zip
donc je ne peux pas y accéder directement, parce que j'ai besoin de fournir plus de détails que sont dynamiques.
L'exemple avec "...redirect?r=central-proxy&g=log4j&a=log4j&v=DERNIER" fonctionne si je l'ouvre dans le navigateur, mais pas quand j'ai ce qu'il faut installer à partir d'une machine linux à l'aide de:
/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 est à l'aide de 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 installer la DERNIÈRE version de fichier local.
Chaque référentiel a sa propre url (vous pouvez le voir dans l'explorateur de Dépôt). Si vous l'ouvrez, vous pouvez parcourir par le biais du groupe et de l'artefact id pour 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