2013-07-06 16 views
6

mam to w moim ~/.m2/settings.xml:Maven nie odbiera nazwę użytkownika do repozytorium z 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> 

I to w moim 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> 

The Problemem, przed którym stoję, jest to, że artefakt nie zostaje wdrożony, a logi nexusa pokazują, że nazwa użytkownika używana do uwierzytelnienia jest "anonimowa". I właśnie dlatego się nie udaje. Dlaczego maven nie wybrał nazwy użytkownika/hasła podanego w pliku settings.xml, czy robię coś nie tak?

Również próbowałem działa Maven z -X i dziennik debugowania mówi, że odczytując plik dla ustawień:

[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

Czy już sprawdziłeś, czy plik settings.xml jest rzeczywiście używany? Wypróbuj "mvn help: effective-settings". To wypisze plik settings.xml, jak widzi go. –

+0

Tak, drukuje on prawidłowo sekcję . – praddy

+0

Ponadto, 'mvn help: effective-pom' pokazuje poprawnie sekcję , z poprawnym . Ale nie pokazuje sekcji , która moim zdaniem nie powinna się wyświetlać, proszę, popraw mnie, jeśli się mylę. – praddy

Odpowiedz

2

Jeśli repo jest chroniony uwierzytelniania podstawowego, można dać to odchodzenie:

Dodaj to do swojej 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> 

można uzyskać value część z:

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

co powinno skutkować wyjściem podobny do:

> Authorization: Basic ZGVwbG95bWVudDp4eHh4eHg= 
1

przypadku skonfigurowania lustro w settings.xml trzeba użyć id lustrze w elemencie serwera.

<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> 
Powiązane problemy