Maven-Befehl, der settings.xml Maven zu bestimmen, verwendet
-
12-09-2019 - |
Frage
Wie kann ich Maven Befehlszeile verwenden, um festzustellen, welche settings.xml Maven zieht an?
Lösung
Starten Sie Maven mit Option -X (debug) und den Beginn der Ausgabe untersuchen. 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 werden von mir entfernt)
Andere Tipps
Ihr Beitrag zu cletus' (korrekte) Antwort impliziert, dass es mehrere Maven Einstellungen Dateien beteiligt sind.
Maven immer verwendet entweder eine oder zwei Einstellungsdateien. Die globalen Einstellungen definiert in ($ {} M2_HOME /conf/settings.xml) ist immer erforderlich. Die Benutzereinstellungsdatei (definiert in $ {user.home} /. M2 / settings.xml) ist optional. Alle Einstellungen, definiert in den Benutzereinstellungen haben Vorrang vor den entsprechenden globalen Einstellungen.
Sie können die Lage der globalen und Benutzereinstellungen über die Befehlszeile außer Kraft setzen, wird das folgende Beispiel 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
Zur Zeit gibt es keine Eigenschaft oder Mittel festzustellen, welche Benutzer und globale Einstellungen Dateien aus mit Maven verwendet wurden. Um diese Werte zugreifen, würden Sie ändern müssen MavenCli und / oder DefaultMavenSettingsBuilder die Dateipfade zu injizieren in die aufgelösten Einstellungen widersprechen.
Sie können das Maven Hilfe Plugin Sie den Inhalt sagen, Ihre Benutzer und globale Einstellungsdateien.
mvn help:effective-settings
wird Maven fragen Sie die kombiniert globalen und Benutzereinstellungen auszuspucken .
Dies ist die Konfigurationsdatei für Maven. Es kann auf zwei Ebenen festgelegt werden:
-
Benutzerebene. Diese settings.xml bietet Konfiguration für einen einzelnen Benutzer, und wird normalerweise in $ zur Verfügung gestellt {user.home} /. m2 / settings.xml.
NOTE: This location can be overridden with the CLI option: -s /path/to/user/settings.xml
-
globale Ebene. Diese settings.xml bietet Konfiguration für alle Maven Benutzer auf einer Maschine (vorausgesetzt, sie alle mit dem gleichen Maven sind Installation). Es ist normalerweise vorgesehen in $ {} Maven.home /conf/settings.xml.
NOTE: This location can be overridden with the CLI option: -gs /path/to/global/settings.xml
Die M2_HOME
Umgebungsvariable für die globale. Siehe Einstellungen Referenz :
Das
settings
Element in dersettings.xml
Datei enthält Elemente verwendet, um Werte zu definieren, die zu konfigurieren Maven Ausführung auf verschiedene Weise, wie diepom.xml
, sollte aber nicht sein gebündelt zu einem bestimmten Projekt oder an ein Publikum verteilt. Diese sind Werte wie die lokale Repositoryposition, alternativer Fern Repository-Server und Authentifizierung Information. Es gibt zwei Standorte wo eine settings.xml leben kann:
- Die Maven installieren:
$M2_HOME/conf/settings.xml
- ein Benutzer installieren:
${user.home}/.m2/settings.xml
Schnelle und schmutzige Methode, um festzustellen, 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 dann Maven meldet einen Fehler: "Fehler beim Lesen der settings.xml ..."