wake-up-neo.net

Maven-Befehl zum Ermitteln der von Maven verwendeten settings.xml-Datei

Wie bestimme ich mit der Maven-Befehlszeile, welche settings.xml-Datei Maven abholt?

250
harschware

Starten Sie maven mit der Option -X (Debug) und überprüfen Sie den Beginn der Ausgabe. Es sollte so etwas geben:

...
[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
...

(Ursprüngliche Verzeichnisnamen werden von mir entfernt)

301
elek

Ihr Kommentar zur (richtigen) Antwort von cletus impliziert, dass mehrere Maven-Einstellungsdateien betroffen sind.

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 den Speicherort der globalen Einstellungen und der Benutzereinstellungen über die Befehlszeile überschreiben. Im folgenden Beispiel werden die globalen Einstellungen auf c:\global\settings.xml und die Benutzereinstellungen auf c :\user\settings.xml:

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

Derzeit gibt es keine Möglichkeit, festzustellen, von welchen Benutzer- und globalen Einstellungsdateien Maven verwendet hat. Um auf diese Werte zuzugreifen, müssten Sie MavenCli und/oder DefaultMavenSettingsBuilder ändern, um die Dateispeicherorte in das aufgelöste Settings-Objekt einzufügen.

165
Rich Seller

Mit dem maven help plugin können Sie den Inhalt Ihrer Benutzer- und globalen Einstellungsdateien anzeigen.

mvn help:effective-settings

wird maven auffordern, die kombinierten globalen und Benutzereinstellungen auszuspucken .

117
serg10

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

  1. Benutzerlevel. Diese settings.xml-Datei enthält 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 stellt die Konfiguration für alle Maven-Benutzer auf einem Computer bereit (vorausgesetzt, sie verwenden alle dieselbe 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
    
39
firstthumb

Eine schnelle und fehlerhafte Methode, um festzustellen, ob Maven die gewünschte settings.xml verwendet, macht die XML-Datei ungültig und führt einen sicheren maven-Befehl aus, für den settings.xml erforderlich ist.

Wenn this settings.xml angezeigt wird, meldet Maven einen Fehler: "Fehler beim Lesen von settings.xml ..."

24
topchef

Das M2_HOME Umgebungsvariable für die globale. Siehe Einstellungsreferenz :

Das settings -Element im settings.xml Datei enthält Elemente, die zur Definition von Werten verwendet werden, die die Ausführung von Maven auf verschiedene Arten konfigurieren, wie zB die pom.xml, sollte aber nicht für ein bestimmtes Projekt gebündelt oder an ein Publikum verteilt werden. Dazu gehören Werte wie der lokale Repository-Speicherort, alternative Remote-Repository-Server und Authentifizierungsinformationen. Es gibt zwei Speicherorte, an denen sich eine settings.xml-Datei befinden kann:

  • Die Maven installieren: $M2_HOME/conf/settings.xml
  • Installation eines Benutzers: ${user.home}/.m2/settings.xml
24
cletus