2009-08-11 10 views

Antwort

233

starten Maven mit Option -X (debug) und untersuchen den Beginn der Ausgabe. Es sollte wie folgt sein:

... 
[INFO] Error stacktraces are turned on. 
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml 
[DEBUG] Reading user settings from c:\....\.m2\settings.xml 
[DEBUG] Using local repository at C:\....\repository 
... 

(Original-Verzeichnisnamen von mir entfernt werden)

+6

Vielleicht war dies nicht in der Debug-Ausgabe, bis Maven 3 veröffentlicht wurde, aber Ihr Beitrag etwa 2,5 Jahre später ist schließlich die genaue Antwort, die ich suchte (Entschuldigung für die 6 Monate Verzögerung bei der Kenntnisnahme). – harschware

21

Die M2_HOME Umgebungsvariable für die globale. Siehe Settings Reference:

The settings element in the settings.xml file contains elements used to define values which configure Maven execution in various ways, like the pom.xml , but should not be bundled to any specific project, or distributed to an audience. These include values such as the local repository location, alternate remote repository servers, and authentication information. There are two locations where a settings.xml file may live:

  • The Maven install: $M2_HOME/conf/settings.xml
  • A user's install: ${user.home}/.m2/settings.xml
+0

Wenn diese Antwort bedeuten soll, dass die Bestimmung des Repositorys nur durch die Untersuchung der Umgebung erfolgt, ist dies eine gültige Antwort. Ich hatte gehofft, von einem Befehlszeilenschalter oder etwas zu erfahren, das eine definitive Liste von qualifizierten Pfaden für alle verwendeten settings.xml-Dateien liefert ... Ich denke, es gibt wahrscheinlich keinen solchen Mechanismus. – harschware

+3

+1 Antwort, Cletus. Ich denke, es lohnt sich, die nächste Zeile aus dem Link "Einstellungsreferenz" zu erwähnen: 'Die früheren settings.xml werden auch globale Einstellungen genannt, die letzteren settings.xml werden als Benutzereinstellungen bezeichnet. Wenn beide Dateien vorhanden sind, wird ihr Inhalt zusammengeführt, wobei die benutzerspezifischen settings.xml dominant sind. –

145

Ihr Beitrag zu cletus' (korrekte) Antwort impliziert, dass es beteiligt mehrere Maven Einstellungsdateien.

Maven verwendet immer eine oder zwei Einstellungsdateien. Die in ($ {M2_HOME} /conf/settings.xml) definierten globalen Einstellungen sind immer erforderlich. Die Benutzereinstellungsdatei (definiert in $ {user.home} /. M2/settings.xml) ist optional. Alle in den Benutzereinstellungen definierten Einstellungen haben Vorrang vor den entsprechenden globalen Einstellungen.

Sie können die Lage der globalen und Benutzereinstellungen über die Befehlszeile die globalen Einstellungen c gesetzt, das folgende Beispiel außer Kraft setzen: \ global \ settings.xml und die Benutzereinstellungen zu c: \ Benutzer \ settings.xml:

mvn install --settings c:\user\settings.xml 
    --global-settings c:\global\settings.xml 

Derzeit liegen keine Eigenschaft ist oder Mittel, um festzustellen, welche Benutzer und globale Einstellungen Dateien aus mit Maven verwendet wurden. Um auf diese Werte zuzugreifen, müssten Sie MavenCli und/oder DefaultMavenSettingsBuilder ändern, um die Dateipositionen in das aufgelöste Settings-Objekt zu injizieren.

+0

Es wäre großartig, wenn wir die settings.xml für mehrere Benutzer bereitstellen könnten, damit wir sie beispielsweise mit anderen Projekten verwenden könnten. Ich weiß, dass wir ein Profil verwenden können. Aber es wäre viel besser, wenn es eine separate Datei gäbe. Es ist nicht möglich, oder ?! Prost! – despot

+0

Ich suchte nach einer Lösung, um meine Benutzereinstellungen nur einmal zu überschreiben, ohne die Datei manipulieren zu müssen. Also habe ich nur die globale Datei für die Benutzereinstellungen verwendet. I.e. --settings c: \ global \ settings.xml auf diese Weise wurde die Benutzerdatei weggelassen – msparer

+0

@despot, spät in die Partei, aber in einer Weise können Sie durch mehrere Profile definiert und einige benutzerdefinierte 'Auslöser': https: //maven.apache .org/settings.html # Aktivierung – indivisible

32

Dies ist die Konfigurationsdatei für Maven. Es kann auf zwei Ebenen angegeben werden:

  1. Benutzerlevel. Diese settings.xml-Datei bietet die Konfiguration für einen einzelnen Benutzer und wird normalerweise in $ {user.home} /. M2/settings.xml bereitgestellt.

      NOTE: This location can be overridden with the CLI option: 
    
          -s /path/to/user/settings.xml 
    
  2. Globale Ebene. Diese settings.xml-Datei bietet eine Konfiguration für alle Maven Benutzer auf einem Computer (vorausgesetzt, sie verwenden alle die gleiche Maven Installation). Es wird normalerweise in $ {maven.home} /conf/settings.xml bereitgestellt.

      NOTE: This location can be overridden with the CLI option: 
    
          -gs /path/to/global/settings.xml 
    
+1

die Eigenschaft ist M2_HOME, nicht maven.home –

+0

Es spielt keine Rolle. Wenn Sie die Umgebungsvariable mit maven.home setzen, wird es kein Problem geben. – firstthumb

21

quick and dirty-Methode zu bestimmen, ob Maven gewünscht settings.xml verwenden würde seine xml ungültig machen und eine sichere Maven Befehl ausführen, die settings.xml erfordert.

Wenn es liest diese settings.xml meldet dann Maven einen Fehler: "Fehler beim Lesen der settings.xml ..."

+3

Während Cletus 'Antwort sehr informativ war, ist diese Antwort im engeren Sinne mehr, wonach ich gesucht habe (da dort anscheinend keine Einstellungen vorhanden sind). XML-Datei Bericht Mechanismus in Maven selbst) – harschware

83

Sie können die maven help plugin verwenden Sie den Inhalt Ihrer Benutzer und globalen Einstellungen Dateien zu erzählen.

mvn help:effective-settings 

wird Maven fragen die kombiniert globalen und Benutzereinstellungen auszuspucken.

+0

Es hilft mir, alte Maven Repo http://repo1.maven.org/maven2/ http://search.maven.org zu aktualisieren – Ricardo

+0

Perfekt, genau das, was ich gesucht habe – pdem

Verwandte Themen