Как предоставить URL-доступ к последнему снимку артефакта в Nexus 2.x? - PullRequest
43 голосов
/ 14 февраля 2012

Я хотел бы предоставить простой URL-адрес, который всегда будет возвращать последнюю версию снимка версии артефакта. Проще говоря, я имею в виду, что URL-адрес не изменяется или требует, чтобы пользователь просматривал каталог и проверял временные метки.

Ответы [ 4 ]

60 голосов
/ 15 февраля 2012

Обратите внимание, что этот ответ относится к Nexus 2.X

Ядро "перенаправления" Nexus REST API может использоваться для получения любой версии артефакта изназначенный репозиторий:

Например:

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

Параметр v может иметь значение, подобное 1.0-SNAPSHOT, в этом случае Mavenвернет последний моментальный снимок с меткой времени, хранящийся в хранилище.Аналогично, специальное значение "LATEST" должно делать то же самое, если нет последней выпущенной версии.

3 голосов
/ 11 марта 2015

Если вы ищете последнюю версию снимка, просто спросите, скажем, «1.0-SNAPSHOT» вернет последнюю версию снимка этого артефакта.

Однако, если вы ищете «последнюю версию», синтаксис «v = LATEST» будет работать, но имейте в виду, что это ключевое слово может возвращать последнюю версию того снимка, который вы ищете, или выпуск, который только что завершенный, или ДРУГАЯ ветвь того же артефакта, версия которого впереди и все еще в "-SNAPSHOT".

Если вы ищете абсолютную последнюю версию, тогда да, используйте «v = ПОСЛЕДНЮЮ». Если вы ищете последнюю версию, вы также можете запросить «v = RELEASE». Если у вас есть группа репозиториев, вы можете ссылаться как на репозитории моментальных снимков, так и на репозитории выпусков, добавив в URL что-то вроде:

"... v = RELEASE & г = общественность"

Это должно искать во всех ваших "сгруппированных" репозиториях.

2 голосов
/ 05 декабря 2013

на моей машине nexus все результаты для:

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

похожи на это: * -1.2.3-20131204.143026-1.zip

так что я могунапрямую к нему, потому что мне нужно предоставить больше динамических подробностей.

Пример с "... redirect? r = central-proxy & g = log4j & a = log4j & v = LATEST" работает, если я открываю в браузерено не тогда, когда я могу установить его с какой-нибудь машины Linux, используя:

/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

Так что мое временное решение использует 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"

затем установите последнюю версию из локального файла.

0 голосов
/ 14 февраля 2012

Каждый репозиторий имеет свой собственный URL (вы можете увидеть его в браузере репозитория). Если вы откроете его, вы сможете просмотреть группу и идентификаторы артефактов для вашего артефакта. Вот ваш URL, например, такой: http://nexushost.domain/content/repositories/snapshots/com/example/group/artifact/1.2.3-SNAPSHOT/1.2.3-SNAPSHOT.jar

...