software sistemas repositorios repositorio qué que operativos mvn jfrog control clean maven nexus

maven - sistemas - ¿Cómo proporciono acceso URL a la última instantánea de un artefacto en Nexus?



repositorio universal (4)

Tenga en cuenta que esta respuesta se refiere a Nexus 2.X

La API REST principal de "redireccionamiento" de Nexus se puede usar para recuperar cualquier versión de un artefacto de un repositorio designado:

Por ejemplo:

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

El parámetro v puede tener un valor como 1.0-SNAPSHOT, en cuyo caso Maven devolverá la última instantánea con sello de tiempo retenida en el repositorio. De manera similar, el valor especial "ÚLTIMO" debería hacer lo mismo, siempre que una versión lanzada más reciente no esté presente.

Me gustaría proporcionar una URL simple que siempre devolverá la última versión de una versión instantánea de un artefacto. Por simple quiero decir que la URL no cambia, o requiere que el usuario explore el directorio y examine las marcas de tiempo.



Si está buscando la última versión de una instantánea, simplemente solicite, por ejemplo, "1.0-SNAPSHOT" devolverá la última versión de la instantánea de ese artefacto.

Sin embargo, si está buscando la "última versión", la sintaxis "v = ÚLTIMA" funcionará, pero tenga en cuenta que esta palabra clave puede devolver la última versión de esa instantánea que está buscando, o la versión que acaba de completar, o esa OTRA rama de ese mismo artefacto que es una versión adelante y aún en "-SNAPSHOT".

Si está buscando lo último absoluto, sí, use la "v = ÚLTIMA VEZ". Si está buscando la última versión, también puede solicitar "v = LIBERACIÓN". Si tiene una agrupación de repositorios, puede hacer referencia a repositorios instantáneos y repositorios de instantáneas agregando a la url algo como:

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

Eso debería buscar en todos sus repositorios "agrupados".


en mi máquina nexus todos los resultados para:

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

son así: * -1.2.3-20131204.143026-1.zip

así que no puedo acceder directamente porque necesito proporcionar más detalles que sean dinámicos.

El ejemplo con "... redirigir? R = central-proxy & g = log4j & a = log4j & v = ÚLTIMO" está funcionando si abro en el navegador pero no cuándo debo instalarlo desde alguna máquina Linux utilizando:

/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

Entonces mi solución temporal es usar 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"

luego instala la última versión del archivo local.