2013-07-06 16 views
6

ho questo nel mio ~/.m2/settings.xml:Maven non raccogliendo nome utente per repository da settings.xml

<servers> 
    <server> 
     <username>deployment</username> 
     <password>xxxxxx</password> 
     <id>central</id> 
    </server> 
    <server> 
     <username>deployment</username> 
     <password>xxxxxx</password> 
     <id>snapshots</id> 
    </server> 
</servers> 

E questo nel mio POM:

<distributionManagement> 
    <repository> 
     <id>central</id> 
     <name>libs-release-local</name> 
     <url>http://repo.example.com:8081/nexus/content/repositories/libs-release-local</url> 
    </repository> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <name>libs-local</name> 
     <url>http://repo.example.com:8081/nexus/content/repositories/libs-local</url> 
    </snapshotRepository> 
</distributionManagement> 

Il Il problema che sto affrontando è che l'artefatto non viene schierato e che i log del nexus mostrano che il nome utente utilizzato per l'autenticazione è "anonimo". Ed è per questo che sta fallendo. Perché non sto facendo la scelta del nome utente/password specificato in settings.xml, sto facendo qualcosa di sbagliato?

Inoltre, ho provato Maven esecuzione con -X e il registro di debug dice che è la lettura del file corretto per le impostazioni:

[DEBUG] Reading global settings from /home/praddy/apache-maven-3.0.5/conf/settings.xml 
[DEBUG] Reading user settings from /home/praddy/.m2/settings.xml 
[DEBUG] Using local repository at /home/praddy/.m2/repository 
+1

Hai già verificato che il file settings.xml sia realmente utilizzato? Prova "mvn help: impostazioni efficaci". Questo stampa fuori settings.xml come lo vede Maven. –

+0

Sì, stampa correttamente la sezione . – praddy

+0

Inoltre, 'mvn help: effective-pom' mostra correttamente la sezione , con la corretta . Ma non mostra la sezione che penso non dovrebbe mostrare comunque, per favore correggimi se sbaglio qui. – praddy

risposta

2

Se il repo è protetto con BasicAuth, si può dare a questo un andare:

Aggiungi questo al vostro settings.xml

<servers> 
    <server> 
     <!-- Link this id here to the repo ID --> 
     <id>central</id> 
     <configuration> 
      <httpHeaders> 
       <property> 
        <name>Authorization</name> 
        <value>Basic ZGVwbG95bWVudDp4eHh4eHg=</value> 
       </property> 
      </httpHeaders> 
     </configuration> 
    </server> 
</servers> 

È possibile ottenere la parte value con:

curl -v --user deployment:xxxxxx http://repo.example.com:8081/nexus/content/repositories/libs-release-local 2>&1 | grep Authorization 

che dovrebbe sfociare in un output simile a:

> Authorization: Basic ZGVwbG95bWVudDp4eHh4eHg= 
1

Se si configura uno specchio nel vostro settings.xml è necessario utilizzare l'id dello specchio nell'elemento server.

<servers> 
    <server> 
     <id>MIRROR-ID</id> 
     <username>...</username> 
     <password>...</password> 
    </server> 
</servers> 

... 

<mirrors> 
    <mirror> 
     <id>MIRROR-ID</id> 
     <name>...</name> 
     <url>...</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 
Problemi correlati