Jak zapewnić dostęp URL do najnowszej migawki artefaktu w Nexus?

Chciałbym podać prosty adres URL, który zawsze zwróci najnowszą wersję migawki artefaktu. Mówiąc prościej, mam na myśli, że adres URL nie zmienia się lub wymaga od użytkownika przeglądania katalogu i sprawdzania znaczników czasu.

 38
Author: chad, 2012-02-14

4 answers

Zwróć uwagę, że ta odpowiedź dotyczy Nexusa 2.X

Core Nexus" redirect " REST API może być użyte do pobrania dowolnej wersji artefaktu z nominowanego repozytorium:

Na przykład:

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

Parametr v może być wartością taką jak 1.0-SNAPSHOT, w którym to przypadku Maven zwróci najnowszą migawkę ze znacznikiem czasu przechowywany w repozytorium. Podobnie wartość specjalna "LATEST" powinna zrobić to samo, pod warunkiem, że nowsza wydana wersja nie jest obecna.

 55
Author: Mark O'Connor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 08:56:04

Jeśli szukasz najnowszej wersji migawki, wystarczy poprosić o powiedzmy, "1.0-SNAPSHOT" zwróci najnowszą wersję migawki tego artefaktu.

Jeśli jednak szukasz "najnowszej wersji", składnia "v=LATEST "będzie działać, ale pamiętaj, że to słowo kluczowe może zwrócić najnowszą wersję tego migawki, której szukasz, lub wydanie, które właśnie zostało ukończone, lub inną gałąź tego samego artefaktu, która jest wersją przed i nadal w"- SNAPSHOT".

Jeśli szukasz absolutnej najnowszej, to tak, użyj "V = LATEST". Jeśli szukasz najnowszej wersji, możesz również poprosić o "v = RELEASE". Jeśli masz grupę repo, możesz odwoływać się zarówno do repo migawek, jak i repozytoriów release, dodając do adresu url coś w stylu:

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

To powinno przeszukać wszystkie" zgrupowane " transakcje repo.

 3
Author: EJC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-11 02:41:41

Na mojej maszynie nexus wszystkie wyniki dla:

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

Są takie: *-1.2.3-20131204.143026-1.zip

Więc nie mogę uzyskać dostępu bezpośrednio, ponieważ muszę podać więcej szczegółów, które są dynamiczne.

Przykład z "...przekierowanie?r = central-proxy&g=log4j&a=log4j&V=LATEST " działa jak otwieram w przeglądarce ale nie kiedy to co zainstalować z jakiegoś używanie komputera z Linuksem:

/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

Więc moim tymczasowym rozwiązaniem jest użycie 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"

Następnie zainstaluj najnowszą wersję z pliku lokalnego.

 2
Author: matei.nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-05 15:24:21

Każde repozytorium ma swój własny adres url (można go zobaczyć w przeglądarce repozytorium). Jeśli go otworzysz, możesz przeglądać identyfikatory grup i artefaktów do swojego artefaktu. To twój adres url, na przykład tak: http://nexushost.domena / zawartość / repozytoria / migawki / com / przykład/grupa / artifact/1.2.3-migawka / 1.2.3-migawka.jar

 0
Author: dunni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-14 18:06:39