2012-02-14 11 views
36

Chciałbym podać prosty adres URL, który zawsze zwróci najnowszą wersję migawki wersji artefaktu. Mówiąc wprost, mam na myśli to, że adres URL się nie zmienia lub nie wymaga od użytkownika przeglądania katalogu i sprawdzania znaczników czasu.Jak zapewnić dostęp URL do najnowszej migawki artefaktu w Nexusie?

+0

miałem dokładnie to samo pytanie. Piszę skrypty pobrać artefakty z Nexusa i dynamiczne linki do migawek gdzie –

Odpowiedz

54

Uwaga ta odpowiedź dotyczy Nexus 2.X

Rdzeń Nexus „redirect” REST API może być używany do pobierania dowolnej wersji artefakt od wyznaczonej 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 mieć wartość taką jak 1.0-SNAPSHOT, w którym to przypadku Maven zwróci ostatnio zapisaną czasowo migawkę przechowywaną w repozytorium. Podobnie specjalna wartość "NAJNOWSZE" powinna zrobić to samo pod warunkiem, że nie jest dostępna nowsza wersja.

+1

Upewnij się, że używasz identyfikatora repozytorium, a nie nazwy repozytorium dla parametru "r". – evandor

+0

Chciałbym dać ci dwie awanse! Jedyne, co pominięto, to link (działający?) Do dokumentacji interfejsu API REST, który powinien być podobny do /nexus-core-documentation-plugin/core/docs/index.html. –

+0

@ TomislavNakic-Alfirevic Tak, link w mojej odpowiedzi już nie działa .... Sonatype zmieniają trochę konfigurację swojej strony i serwera ... Szkoda, że ​​nie istnieje główna strona referencyjna dla dokumentacji REST API. Jak już powiedziałeś, reszta doco jest dostępna z lokalnej instancji. –

0

Każde repozytorium ma własny adres URL (można go zobaczyć w przeglądarce repozytorium). Jeśli go otworzysz, możesz przeglądać identyfikatory grupy i artefaktów w swoim artefakcie. To jest adres URL, na przykład tak: http://nexushost.domain/content/repositories/snapshots/com/example/group/artifact/1.2.3-SNAPSHOT/1.2.3-SNAPSHOT.jar

+0

Używamy wersji snapshot z sygnaturami czasowymi, więc to nie jest takie proste – chad

+0

@chad.To właśnie robi -SNAPSHOT.Nie myśl o tym jako dowiązanie symboliczne do najnowszej wersji sygnatury czasowej –

+1

To na pewno nie działa dla mnie. spodziewali się, że bezpośrednie przeszukiwanie repozytorium http da mi tę warstwę metadanych inspekcji rozdzielczości, czy jest możliwe, że muszę w jakiś sposób skonfigurować repozytorium do tego ... – chad

2

na moim komputerze nexus wszystkie wyniki dla:

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

to tak: * -1.2.3-20131204.143026-1.zip

więc nie mogę do niego dostęp bezpośrednio, ponieważ Muszę podać więcej szczegółów, które są dynamiczne.

Przykład z „... przekierować? R = środkowo-proxy & g = log4j & a = v = log4j & NAJNOWSZE” działa jeśli mogę otworzyć w przeglądarce, ale nie kiedy co zainstalować go z jakiejś maszyny linux przy użyciu:

/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 moje rozwiązanie tymczasowe używa 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 zainstalować NAJNOWSZE ve rsion z lokalnego pliku.

3

Jeśli szukasz najnowszej wersji migawki, prosząc o wypowiedzenie, "1.0-SNAPSHOT" zwróci najnowszą wersję migawki tego artefaktu.

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

Jeśli szukasz absolutnego najnowszego, to skorzystaj z "v = LATEST". Jeśli szukasz najnowszej wersji, możesz też poprosić o "v = RELEASE". Jeśli masz grupę reposów, możesz odwoływać się do obu repozytoriów migawek i wydawać repozytoria, dodając do adresu URL coś w rodzaju:

"...v = RELEASE & r = publiczna”

To powinno przeszukiwać wszystkich«zgrupowane»repo.

Powiązane problemy