Подтвердить что ты не робот

Как предоставить URL-доступ к последнему снимку артефакта в Nexus 2.x?

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

4b9b3361

Ответ 1

Please note

Базовое "перенаправление" 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" должно делать то же самое, если нет более поздней выпущенной версии.

Ответ 2

Если вы ищете последнюю версию моментального снимка, просто попросите сказать "1.0-SNAPSHOT" вернет последнюю версию моментального снимка артефакта.

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

Если вы ищете абсолютное последнее, то да, используйте "v = LATEST". Если вы ищете последнюю версию, вы также можете запросить "v = RELEASE". Если у вас есть группа репозиториев, вы можете ссылаться как на репозитории моментальных снимков, так и на выпуск репозиториев, добавив в URL-адрес что-то вроде:

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

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

Ответ 3

на моей машине 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"

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

Ответ 4

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