2013-07-07 7 views
11

Kann ich in Maven settings.xml mehrere Repositorys mit Anmeldedaten für einen einzelnen Server haben?Festlegen einzelner Server-Anmeldedaten in Maven für mehrere Repositorys

Wir verwenden Maven 3.0.4 Artefakte zu Nexus Pro-Version 2.2.1

Wir haben mehrere Repositories auf demselben Server bereitstellen und ein Benutzer die gleichen Anmeldeinformationen alle diese Repositories zugreifen.

Die settings.xml mehrere Repositories mit den gleichen Anmeldeinformationen:

<repositories> 
<repository> 
    <id>Staging-group</id> 
    <url>http://server/nexus/content/groups/Staging-group</url> 
<repository> 
    <id>RELEASES</id> 
    <url>http://server/nexus/content/repositories/RELEASES</url> 
</repository> 
<repository> 
    <id>INTERNALS</id> 
    <url>http://server/nexus/content/repositories/INTERNALS</url> 
</repository> 
<repository> 
    <id>SNAPSHOTS</id> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 
</repositories> 
..... 
<servers> 
<server> 
    <id>Staging-group</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>RELEASES</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>SNAPSHOTS</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
<server> 
    <id>INTERNALS</id> 
    <username>user</username> 
    <password>password</password> 
</server> 
</servers> 

Nexus Active Directory-Authentifizierung verwendet. Jedes Mal, wenn ein Benutzer sein Windows-Kennwort ändert, müssen alle vier Einträge in der settings.xml-Datei geändert werden

Gibt es eine Möglichkeit, die Anmeldeinformationen einmal für alle Repositorys zu deklarieren?

Danke, Eyal

Antwort

5

Ja, zumindest glaube ich das funktionieren sollte.

Statt

<repository> 
    <id>SNAPSHOTS</id> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 

Verwenden

<repository> 
    <id>nexus</id> 
    <name>SNAPSHOTS</name> 
    <url>http://server/nexus/content/repositories/SNAPSHOTS</url> 
</repository> 

Dann Referenz nur Nexus als Server-ID.

+0

sieht aus wie das funktioniert. Die "Validate" -Phase erzeugt diese Warnung jedoch beim Erstellen eines Projekts: '[WARNING] 'profiles.profile [development] .repositories.repository.id' muss eindeutig sein, hat aber ein doppeltes Repository mit ID nexus @ C: \ Dokumente und Einstellungen gefunden \ user \ .m2 \ settings.xml' –

+0

Wenn man bedenkt, dass es eine Warnung ist, sollte es Ihnen gut gehen. intern ist der Name der eindeutige Eintrag für Repositorys unter Verteilungsverwaltung, meist um Snapshots von Release-Artefakten zu trennen. –

+0

dies funktioniert nicht für mich auf mvn 3.5.2, wenn ich mehrere Repositories mit der gleichen ID definieren nur das letzte Repository wird von Maven verwendet, um die Abhängigkeiten aufzulösen, hat jemand herausgefunden, wie man das löst? –

0

Scheint, ich darf nicht kommentieren, weil ich nicht genug erfahren bin. Als ob :) Allerdings, in Bezug auf die WARNUNG profiles.profile[development].repositories.repository.id muss eindeutig sein, fand ich dies zu zwei settings.xml Dateien gefunden werden. Eine in einer Maven Installation ${maven-install}/conf/settings.xml sowie eine in ~/.m2/settings.xml. Entscheide, welches du willst und bereinige das andere.

Verwandte Themen