2013-02-21 13 views
8

W moim pliku POM, jestem określając dwa repozytoria:Maven: Znaczenie repozytorium ID

<repositories> 
    <repository> 
     <id>myid</id> 
     <url>http://url1</url> 
    </repository> 
    <repository> 
     <id>myid</id> 
     <url>http://url2</url> 
    </repository> 
</repositories> 

tak, to z dokumentacji Maven, mam wrażenie, że element id powinny odsyłaczy z settings.xmlserver wpis, aby określić informacje uwierzytelniające. Zarówno http://url1, jak i, w moim przypadku, wymagają tych samych danych uwierzytelniających; właśnie dlatego używam tego samego id dla obu.

Nadal, Maven skarży się, mówiąc, że element id musi być unikalny.

Co daje? Jaki dokładnie jest cel elementu id? Wiem (na pewno), że Maven używa go do uzyskania danych uwierzytelniających - i dlatego rzeczy działają, gdy tylko określam jedno repozytorium. Dlaczego muszę duplikować dane uwierzytelniające? czego mi brakuje?

+0

[Jak tutaj powiedziano] (http://maven.apache.org/settings.html#Servers) wygląda na to, że Maven łączy każde repozytorium z wpisem serwera. Wygląda na to, że musisz utworzyć dwa wpisy na serwerze, ale nie musisz duplikować swoich poświadczeń, po prostu ustaw je jako właściwości i użyj ich do każdego wpisu. –

+0

@XtremeBiker, właściwości zdefiniowane w 'settings.xml' są tylko w kontekście profilu. Z jakiegoś powodu te właściwości nie są rozwinięte dla elementów 'server'. – Isaac

Odpowiedz

6

ID musi być unikatowe. Użyj 2 konfiguracji logowania w pliku settings.xml.

+2

Hmmm. Uważam, że jest to wada projektowa. Ktoś zapomniał coś znormalizować. Ale dziękuję. – Isaac

+0

Wygląda bardziej na to, że powinny być unikatowe, ale nie musi: https://stackoverflow.com/questions/21836539/sonatype-nexus-how-to-set-a-single-server-credentials-for-multiple-repositories? rq = 1 – Robert

Powiązane problemy