2013-07-06 8 views
6

Ich habe dies in meinem ~/.m2/settings.xml:Maven nicht Benutzername für Repository von settings.xml Kommissionierung

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

Und dies in meinem 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> 

Die Das Problem, mit dem ich konfrontiert bin, ist, dass Artefakte nicht bereitgestellt werden und die Nexus-Protokolle zeigen, dass der Benutzername, der zur Authentifizierung verwendet wird, "anonym" ist. Und deshalb versagt es. Warum kann ich nicht den Benutzernamen/das Passwort in der settings.xml auswählen, mache ich etwas falsch?

Auch ich habe versucht, läuft Maven mit X und dem Debug-Log sagt es die richtige Datei für Einstellungen liest:

[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

Haben Sie bereits verifiziert, dass die settings.xml wirklich verwendet wird? Versuchen Sie "mvn help: effective-settings". Dadurch wird die Datei settings.xml ausgedruckt, so wie sie es sieht. –

+0

Ja, es druckt den Abschnitt korrekt. – praddy

+0

Auch 'mvn help: effective-pom' zeigt den Abschnitt korrekt an, mit korrekter das ist. Aber es zeigt nicht den Abschnitt, den ich denke, dass es sowieso nicht zeigen soll, bitte korrigieren Sie mich, wenn ich hier falsch liege. – praddy

Antwort

2

Wenn der Repo mit BasicAuth geschützt ist, können Sie dies geht geben:

Fügen Sie diese auf Ihre 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> 

Sie die mit value Teil bekommen kann:

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

, die in einer Ausgabe ähnlich führen sollen:

> Authorization: Basic ZGVwbG95bWVudDp4eHh4eHg= 
1

Wenn Sie einen Spiegel in Ihrer settings.xml konfigurieren haben Sie die ID des Spiegels in dem Server-Elemente zu verwenden.

<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> 
Verwandte Themen