Wie verwende ich maven-Befehlszeile, um festzustellen, welche settings.xml-Datei Maven abholt?Maven-Befehl, um festzustellen, welche settings.xml-Datei Maven verwendet
Antwort
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)
Die M2_HOME
Umgebungsvariable für die globale. Siehe Settings Reference:
The
settings
element in thesettings.xml
file contains elements used to define values which configure Maven execution in various ways, like thepom.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
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
+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. –
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.
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
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
@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
Dies ist die Konfigurationsdatei für Maven. Es kann auf zwei Ebenen angegeben werden:
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
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
die Eigenschaft ist M2_HOME, nicht maven.home –
Es spielt keine Rolle. Wenn Sie die Umgebungsvariable mit maven.home setzen, wird es kein Problem geben. – firstthumb
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 ..."
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
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.
- 1. Welche Heuristik verwendet TPL, um festzustellen, wann mehrere Kerne verwendet werden müssen
- 2. Gibt es ein Tool, um festzustellen, welche Cognos 8.x-Modelle verwendet werden?
- 3. Welche Tools sind verfügbar, um festzustellen, welche .NET-Assemblys seit dem letzten Build geändert wurden?
- 4. Wie finde ich heraus, welche settings.xml-Datei maven verwendet
- 5. Ermitteln, welche Freigabeerweiterung verwendet wurde
- 6. Herauszufinden, welcher Compiler Maven verwendet
- 7. C++/OpenCV: Wie kann BOWImgDescriptorExtractor verwendet werden, um festzustellen, welche Cluster zu welchen Bildern im Vokabular gehören?
- 8. Welche Maven-Artefakte sollte ich verwenden, um PowerMock zu importieren?
- 9. Abfrage, um festzustellen, ob Backup Exec Backups erstellt
- 10. Wie überprüfe ich eine Tabelle, um festzustellen, ob eine Zeichenfolge bereits verwendet wird?
- 11. Welche Algorithmen verwendet SQL?
- 12. Welche Sonar-Maven-Plugin-Version verwenden?
- 13. Wie viele Rundreisen zur Datenbank Flyway unternimmt, um festzustellen, welche Migration ausgeführt werden muss?
- 14. Gibt es eine Möglichkeit festzustellen, auf welche Textnachricht geantwortet wird?
- 15. Welche Passwortverschlüsselung verwendet Jenkins?
- 16. Welche Passwortverschlüsselung verwendet Hudson?
- 17. Welche Identität verwendet CodeFluentUser.Current?
- 18. Welche Funktion verwendet Python?
- 19. Welche Rechtschreibprüfung verwendet StackOverflow?
- 20. Welche Maßeinheit verwendet LayoutParams?
- 21. Welche Ports verwendet XMPP?
- 22. Beobachten Sie eine Datenbank-Spalte, um festzustellen, was geändert wird
- 23. Welche Funktion kann verwendet werden, um einen Vector zu sortieren?
- 24. Welche Java-Technologie wird verwendet, um Android-Apps zu entwickeln?
- 25. Welche APIs werden verwendet, um Spielanwendung in j2me
- 26. Welche Technik sollte verwendet werden, um 2d Kollisionsprüfungen zu bereinigen?
- 27. Welche Entwicklungstechnologien werden verwendet, um bestimmte berühmte Websites zu entwickeln?
- 28. Welche grundlegende Datenstruktur wird verwendet, um NSOrderedSet zu implementieren
- 29. herausfinden, welche URI wurde verwendet, um mich anzurufen?
- 30. Welche Programmiersprachen wurden verwendet, um zum Mond zu gehen?
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