Wie verwende ich die Maven-Befehlszeile, um zu bestimmen, welche settings.xml-Datei Maven aufnimmt?
Wie verwende ich die Maven-Befehlszeile, um zu bestimmen, welche settings.xml-Datei Maven aufnimmt?
Antworten:
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)
Ihr Kommentar zur (richtigen) Antwort von cletus impliziert, dass mehrere Maven-Einstellungsdateien beteiligt sind.
Maven verwendet immer entweder 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 und 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 festgelegt .
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
Derzeit gibt es keine Eigenschaft oder Mittel, um festzustellen, von welchen Benutzer- und globalen Einstellungsdateien mit Maven verwendet wurde. Um auf diese Werte zuzugreifen, müssten Sie MavenCli und / oder DefaultMavenSettingsBuilder ändern, um die Dateispeicherorte in das aufgelöste Settings-Objekt einzufügen.
Sie können das Maven-Hilfe-Plugin verwenden , um den Inhalt Ihres Benutzers und die globalen Einstellungsdateien anzuzeigen .
mvn help:effective-settings
wird maven bitten, die kombinierten globalen und Benutzereinstellungen auszuspucken .
Dies ist die Konfigurationsdatei für Maven. Es kann auf zwei Ebenen angegeben werden:
Benutzerlevel. Diese Datei settings.xml 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
Globale Ebene. Diese Datei settings.xml bietet Konfiguration für alle Maven-Benutzer auf einem Computer (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
Die M2_HOME
Umgebungsvariable für die globale. Siehe Einstellungsreferenz :
Das
settings
Element in dersettings.xml
Datei enthält Elemente, die zum Definieren von Werten verwendet werden, die die Maven-Ausführung auf verschiedene Arten konfigurieren, z. B. daspom.xml
, aber nicht für ein bestimmtes Projekt gebündelt oder an eine Zielgruppe verteilt werden sollten. Dazu gehören Werte wie der lokale Repository-Speicherort, alternative Remote-Repository-Server und Authentifizierungsinformationen. Es gibt zwei Speicherorte für eine settings.xml-Datei:
- Die Maven-Installation:
$M2_HOME/conf/settings.xml
- Installation eines Benutzers:
${user.home}/.m2/settings.xml
the former settings.xml are also called global settings, the latter settings.xml are referred to as user settings. If both files exists, their contents gets merged, with the user-specific settings.xml being dominant.
Eine schnelle und schmutzige Methode, um festzustellen, ob Maven die gewünschte settings.xml verwendet, würde die XML ungültig machen und einen sicheren Maven-Befehl ausführen, für den settings.xml erforderlich ist.
Wenn es diese settings.xml liest, meldet Maven einen Fehler: "Fehler beim Lesen von settings.xml ..."