2013-02-21 15 views
8

Nel mio file POM, che sto specificando due repository:Maven: significato di ID repository

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

Così, dalla documentazione Maven, ho avuto l'impressione che l'elemento id dovrebbe riferimento incrociato con un settings.xmlserver, per specificare le informazioni di autenticazione. Sia http://url1 e http://url2, nel mio caso, richiedono gli stessi dati di autenticazione; è per questo che sto usando lo stesso id per entrambi.

Ancora, Maven si lamenta, dicendo che l'elemento id deve essere unico.

Cosa dà? Qual è esattamente lo scopo dell'elemento id? So (certo) che Maven lo usa per ottenere i dati di autenticazione - che è il motivo per cui le cose funzionano quando si specifica un solo repository. Perché devo duplicare i miei dati di autenticazione? cosa mi sto perdendo?

+0

[Come si dice qui] (http://maven.apache.org/settings.html#Servers) sembra che Maven colleghi ogni singolo repository con una voce del server. Sembra che dovrai creare due voci del server, ma non devi duplicare le tue credenziali, basta impostarle come proprietà e utilizzarle in ciascuna voce. –

+0

@XtremeBiker, le proprietà definite all'interno di 'settings.xml' sono solo nel contesto di un profilo. Per qualche ragione, queste proprietà non sono espanse per gli elementi 'server'. – Isaac

risposta

6

L'ID deve essere univoco. Utilizza 2 configurazioni di login nel tuo settings.xml.

+2

Hmmm. Considero questo un difetto di progettazione. Qualcuno ha dimenticato di normalizzare qualcosa. Ma grazie. – Isaac

+0

Sembra che dovrebbero essere unici ma non devono: https://stackoverflow.com/questions/21836539/sonatype-nexus-how-to-set-a-single-server-credentials-for-multiple-repositories? RQ = 1 – Robert

Problemi correlati