Die Konfigurationsdateieinstellungen von Maven.xml existiert an zwei Stellen:
1. Installationsort: $ {m2_home} /conf/setings.xml
2. Benutzerverzeichnis: $ {user.home}/. M2/settings.xml
Ersteres wird auch als globale Konfiguration bezeichnet, was für alle Benutzer des Betriebssystems effektiv ist. Letzteres wird als Benutzerkonfiguration bezeichnet, was nur für Benutzer des aktuellen Betriebssystems effektiv ist. Wenn beide vorhanden sind, werden ihre Inhalte zusammengeführt und die benutzerweiten Einstellungen.xml überschreiben die globalen Einstellungen.xml.
Nachdem Maven installiert wurde, wird Settings.xml im Benutzerverzeichnis nicht automatisch generiert, sondern nur die globale Konfigurationsdatei ist verfügbar. Wenn Sie benutzerweite Einstellungen erstellen müssen, können Sie Einstellungen unter dem Installationspfad zum Verzeichnis $ {user.home}/. M2/kopieren. Die Standardeinstellungen von Maven.xml ist eine Vorlage mit Kommentaren und Beispielen. Sie können es schnell ändern, um Ihre Anforderungen zu erfüllen.
Sobald die globale Konfiguration geändert ist, sind alle Benutzer betroffen. Wenn Maven aktualisiert wird, werden alle Konfigurationen gelöscht. Daher müssen Sie die Datei $ {M2_HOME} /conf/Settings.xml im Voraus kopieren und sichern. Im Allgemeinen wird nicht empfohlen, globale Einstellungen zu konfigurieren.xml.
Settings.xml detaillierte Erläuterung
Erklärungspezifikationen
<? XSI: Schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
Lokalrepository
<!- Der Weg zum lokalen Repository. Der Standardwert ist $ {user.home}/. M2/repository. -> <Localrepository> usr/local/maven </localrepository>Interactmode
<!- Muss Maven mit dem Benutzer interagieren, um Eingaben zu erhalten? Wenn Maven mit dem Benutzer interagieren muss, um Eingaben zu erhalten, sollten Sie auf True gesetzt, andernfalls sollte es falsch sein. Standard ist wahr. -> <interActivemode> true </interActivemode>
UsePluginRegistry
<!-Maven muss die Datei plugin-registry.xml verwenden, um die Plugin-Version zu verwalten. Setzen Sie auf true, wenn Sie Maven die Datei $ {user.home}/. M2/plugin-Registry.xml verwenden lassen müssen, um die Plugin-Version zu verwalten. Standard ist falsch. -> <UsePluginRegistry> Falsch </usePluginRegistry>Offline offline
<!-Zeigt an, ob Maven im Offline-Modus ausgeführt werden muss. Richtig, wenn das Build -System im Offline -Modus ausgeführt werden muss, ist standardmäßig zu falsch. Diese Konfiguration ist sehr nützlich, wenn der Build -Server aufgrund von Netzwerk -Setup- oder Sicherheitsfaktoren keine Verbindung zum Remote -Repository herstellen kann. -> <Offline> Falsch </offline>
Plugingroups
<!- Wenn die Plugin-Organisations-ID (GroupID) nicht explizit bereitgestellt wird, ist es für die Suche nach einer Liste der Plugin-Organisations-ID (GroupID). Dieses Element enthält eine Liste von Plugingroup -Elementen, jedes untergeordnete Element enthält eine Organisations -ID (GroupID). Wenn wir ein Plugin verwenden und keine Organisations -ID (GroupID) anbieten, wenn der Befehl wirkt, verwendet Maven die Liste. Standardmäßig enthält die Liste org.apache.maven.plugins und org.codeehaus.mojo-> <PlugingRoups> <!-Plugin-Organisations-ID (GroupID)-> <plugingroup> org.codeHehaus.mojo </Plugingroup> </platzingroups>
Stellvertreter
<!-Um verschiedene Agenten zu konfigurieren, können Multi-Proxy-Profile mit der Arbeitsumgebung von Notebooks oder mobilen Geräten fertig werden: Durch einfaches Festlegen der Profil-ID können Sie die gesamte Proxy-Konfiguration problemlos ändern. -> <proxies> <!-Proxy-Element enthält die Informationen, die bei der Konfiguration des Proxy-> <proxy> <!!-Die eindeutige Definition des Proxy wird verwendet, um verschiedene Proxyelemente zu unterscheiden. -> <Id> MyProxy </id> <!-Ist dieser Proxy derjenige, der aktiviert wird? True aktiviert den Proxy. Wenn wir eine Reihe von Agenten deklarieren und irgendwann nur ein Agent aktiviert werden muss, kann dieses Element nützlich sein. -> <Active> true </active> <!-Proxy-Protokoll. Protokoll: // Hostname: Port, unterteilt in diskrete Elemente für eine einfache Konfiguration. -> <Protokol> Http </protocol> <!-Hostname des Proxy. Protokoll: // Hostname: Port, unterteilt in diskrete Elemente für eine einfache Konfiguration. -> <Host> proxy.somewhere.com </host> <!-Der Proxy-Port. Protokoll: // Hostname: Port, unterteilt in diskrete Elemente für eine einfache Konfiguration. -> <Port> 8080 </port> <!-Der Benutzername, der Benutzername und das Kennwort des Proxy-Servers authentifizierten Anmeldenamen und Kennwort. -> <BENERNAME> Proxyuser </userername> <!-Das Kennwort des Proxy, des Benutzernamens und des Kennworts repräsentiert den Login-Namen und das Passwort für die Proxy-Server-Authentifizierung. -> <Kennwort> Eintreffend </password> <!-Liste der Hostnamen, die nicht proxyiert werden sollten. Der Trennzeichen für diese Liste wird vom Proxy -Server angegeben. Im Beispiel wird die vertikale Linie -Trennzeichen verwendet, und das Komma ist ebenfalls häufig. -> <nonproxyhosts>*. Google.com | ibiblio.org </nonproxyhosts> </proxy> </proxies>
Server
<!-Konfigurieren Sie einige Einstellungen auf dem Server. Einige Einstellungen wie Sicherheitszertifikate sollten nicht mit pom.xml verteilt werden. Diese Art von Informationen sollte in der Datei "settings.xml auf dem Build -Server" vorhanden sein. -> <Servers> <!-Das Serverelement enthält die Informationen, die beim Konfigurieren des Servers benötigt werden-> <server> <!-Dies ist die ID des Servers (beachten Sie, dass es sich nicht um die ID der Benutzeranmeldung handelt). -> <ID> Server001 </id> <!-Autorisierter Benutzername. Das Authentifizierungs -Benutzername und das Authentifizierungskennwort stellen den für die Serverauthentifizierung erforderlichen Anmeldenamen und das Kennwort dar. -> <Benutzername> my_login </userername> <!-Autorisierungskennwort. Das Authentifizierungs -Benutzername und das Authentifizierungskennwort stellen den für die Serverauthentifizierung erforderlichen Anmeldenamen und das Kennwort dar. Die Kennwortverschlüsselungsfunktion wurde zu 2.1.0+ hinzugefügt. Weitere Informationen finden Sie auf der Seite Kennwortverschlüsselung-> <Kennwort> my_password </password> <!-Der Ort des während der Authentifizierung verwendeten privaten Schlüssels. Ähnlich wie bei den ersten beiden Elementen geben der private Schlüsselpunkt und das private Schlüsselkennwort den Pfad zu einem privaten Schlüssel an (Standard ist $ {user.home}/. Ssh/id_dsa) und bei Bedarf eine geheime Anweisung. In Zukunft können Passphrase- und Kennwortelemente extern extrahiert werden, müssen jedoch derzeit in der Datei "Settings.xml" deklariert werden. -> <privateKey> $ {usr.home}/. ssh/id_dsa </privateKey> <!-Das für die Authentifizierung verwendete private Schlüsselkennwort. -> <passphrase> son_pasphrase </passphrase> <!-Berechtigungen beim Erstellen der Datei. Wenn während der Bereitstellung eine Repository -Datei oder ein Verzeichnis erstellt wird, können Sie Berechtigungen verwenden. Der rechtliche Wert dieser beiden Elemente ist eine dreistellige Zahl, die den Berechtigungen des UNIX-Dateisystems entspricht, z. B. 664 oder 775. -> <DirectoryPermissions> 775 </DirectoryPermissions> </Server> </Server>Spiegel
<!-Die für die Repository-Liste konfigurierte Spiegelliste herunterladen. Für erweiterte Einstellungen finden Sie auf der Seite "Spiegeleinstellungen"-> <Mirrors> <!-Download Mirror für ein bestimmtes Repository. -> <Mirror> <!-Die eindeutige Kennung des Spiegels. ID wird verwendet, um verschiedene Spiegelelemente zu unterscheiden. -> <ID> PlanetMirror.com </id> <!-Spiegelname-> <name> PlanetMirror Australia </name> <!-Die URL des Bildes. Das Build -System priorisiert die Verwendung dieser URL, anstatt die Standard -Server -URL zu verwenden. -> <URL> http://downloads.planetmirror.com/pub/maven2 </url> <!-ID des gespiegelten Servers. Wenn wir beispielsweise einen Spiegel des Maven Central Repository (http://repo.maven.apache.org/maven2/) einrichten möchten, müssen wir das Element auf die Zentral einstellen. Dies muss genau das gleiche wie die ID -Zentral des zentralen Lagerhauses sein. -> <Mirrorof> Central </mirrorof> </mirror> </mirrors>
Profile
<!-Passen Sie die Liste der Build-Konfigurationen gemäß den Umgebungsparametern an. Das Profilelement in SettingS.xml ist die verkaufte Version des Profilelements in pom.xml. Es enthält ID, Aktivierung, Repositorys, PluginRepositories und Eigenschaftenelemente. Das Profilelement hier enthält hier nur diese fünf untergeordneten Elemente, da es sich nur um das gesamte Konstruktionssystem kümmert (dies ist die Rollenpositionierung der Einstellungen der Einstellungen.xml -Datei) und nicht um die separaten Einstellungen für Projektobjekte. Wenn ein Profil in einer Einstellungen aktiviert ist, überschreibt sein Wert ein anderes Profil, das im POM oder in Profil.xml definiert ist. -> <Profiles> <!-Konfiguration von Komponenten, die gemäß den Umgebungsparametern angepasst wurden-> <Profile> <!-Die eindeutige Kennung dieser Konfiguration. -> <ID> Test </id>
Aktivierung
<!-Die bedingte Logik, das Profil automatisch auszulösen. Die Aktivierung ist der Öffnungsschlüssel des Profils. Wie Profile in POM resultiert die Leistung von Profilen aus der Fähigkeit, bestimmte Werte in bestimmten Umgebungen automatisch zu verwenden. Diese Umgebungen werden durch das Aktivierungselement angegeben. Das Aktivierungselement ist nicht der einzige Weg, um ein Profil zu aktivieren. Das ActiveProfile -Element in der Datei "Settings.xml" kann die ID des Profils enthalten. Das Profil kann auch explizit aktiviert (z. B. Test) in der Befehlszeile mit einem -P -Tag und einer von Kommas getrennten Liste. -> <Aktivierung> <!-Identifizierung, ob das Profil standardmäßig aktiviert wird-> <ActiveByDefault> Falsch </activeByDefault> <!-Wenn das passende JDK erkannt wird, wird das Profil aktiviert. Zum Beispiel aktiviert 1.4 JDK1.4, 1.4.0_2, während! 1.4 alle Versionen von JDK aktiviert, die mit 1.4 beginnen. -> <jdk> 1.5 </jdk> <!-Wenn das Attribut "Matching Operating System" erkannt wird, wird das Profil aktiviert. Das OS-Element kann einige operativen systembezogene Attribute definieren. -> <os> <!-Der Name des Betriebssystems, das das Profil aktiviert-> <name> Windows XP </name> <! <!-Wenn Maven eine bestimmte Eigenschaft erkennt (sein Wert kann im POM durch $ {name} verwiesen werden), hat er den entsprechenden Namen = Wert und das Profil wird aktiviert. Wenn das Wert des Wertes leer ist, wird das Profil aktiviert, wenn das Feld Eigenschaftsname vorliegt. Andernfalls wird das Feld Eigenschaftswert in fallempfindlichen Weise übereinstimmt-> <Eigentum> <!-Der Name der Eigenschaft, die das Profil aktiviert-> <name> mavenversion </name> <!-Der Wert der Eigenschaft, die das Profil aktiviert-> <Warts> 2.0.3 </value> </Eigenschaft> <! Fehlende Überprüfungen, ob die Datei existiert, und aktiviert das Profil, wenn es nicht vorhanden ist. Auf der anderen Seite prüft, ob die Datei existiert, und aktiviert das Profil, wenn es vorhanden ist. -> <Datei> <!-Wenn die angegebene Datei vorhanden ist, aktivieren Sie das Profil. -> <exists> $ {basiert} /File2.Properties </exists> <!-Wenn die angegebene Datei nicht vorhanden ist, aktivieren Sie das Profil. -> <missen> $ {basierendir} /file1.Properties </vermisst> </file> </activation> Eigenschaften
<!-Die Liste der erweiterten Attributen, die dem Profil entsprechen. Das Maven -Attribut entspricht dem Attribut in Ant und kann verwendet werden, um einige Werte zu speichern. Diese Werte können überall im POM mit dem Tag $ {x} verwendet werden, wobei X auf den Namen der Eigenschaft bezieht. Die Attribute sind in fünf verschiedenen Formularen verfügbar und sind in der Datei setts.xml zugegriffen. 1. Env.x: Vorausgesetzt mit "Env." Gibt eine Shell -Umgebungsvariable zurück. Zum Beispiel bezieht sich "Env.Path" auf die Variable der $ Path -Umgebung (% Pfad% auf Windows). 2. project.x: Bezieht sich auf den entsprechenden Elementwert im POM. Zum Beispiel: <projekt> <version> 1.0 </Version> </projekt> Erhalten Sie den Versionswert über $ {project.version}. 3.. Zum Beispiel: <einstellungen> <Offline> false </offline> </Einstellungen> Rufen Sie den Wert von Offline über $ {Settings.offline} ab. 4. Eigenschaften von Java -Systemen: Alle Eigenschaften, auf die über Java.lang.System.getProperties () zugegriffen werden kann, kann in POM unter Verwendung dieses Formulars wie $ {java.home} in POM zugegriffen werden. 5. X: Verwenden Sie im Element <properties/> oder in einer externen Datei als $ {songar}. -> <properties> <user.install> $ {user.home}/our-project </user.install> </properties>Hinweis: Wenn das Profil aktiviert ist, können Sie $ {user.install} im POM erneut verwenden.
Repositorys
<!-Remote-Repository-Liste, eine Reihe von Remote-Projekten, die von Maven verwendet werden, um das lokale Repository des Build-Systems zu füllen. -> <Repositories> <!-Enthält Informationen, die mit dem Remote-Repository verbunden werden müssen-> <Repository> <!-Remote Repository eindeutige Kennung-> <id> codehaussnapshots </id> <!-Remote-Repository-Name-> <name> codehaus snapshots </name> or. False gibt an, ob das Repository zum Herunterladen eines bestimmten Komponententyps (Release -Version, Snapshot -Version) geöffnet ist. -> <enabled> false </enabled> <!-Dieses Element gibt an, wie oft das Update auftritt. Maven vergleicht die Zeitstempel des lokalen Poms und des entfernten Poms. Die Optionen hier sind: Immer täglich (Standard, täglich), Intervall: x (hier ist x ist ein Zeitintervall in Minuten) oder nie (niemals (niemals). -> <UpdatePolicy> Immer </updatePolicy> <!-Was ist zu tun, wenn die Verifizierungsdatei der Maven-Überprüfung der Komponenten-Komponenten ausfällt-IGNORE, FAIL oder WARNUNG. -> <ChecksUMPolicy> Warn </ChecksUmpolicy> </releases> <!-So umgehen Sie mit Snapshot-Versionen im Remote-Repository. Mit den beiden Konfigurationssätzen, Releases und Schnappschüssen kann POM für jeden Komponentenstyp in jedem separaten Repository unterschiedliche Strategien anwenden. Zum Beispiel könnte jemand beschließen, Unterstützung für Snapshot -Versionen nur für Entwicklungszwecke zu aktivieren. Siehe Repositories/Repository/Releases-Element-> <Snapshots> <enabled/> <UpdodesPolicy/> <Checksumpolicy/> </snapshots> <!-Remote-Repository-URL, in Protocol: // Hostname/Path-Form-> <Url> http://snapshots.Maven. Layout -Typ, der zum Auffinden und Sortieren von Komponenten verwendet wird - kann Standard oder Vermächtnis sein. Maven 2 liefert ein Standardlayout für sein Repository. Maven 1.x hat jedoch ein anderes Layout. Wir können dieses Element verwenden, um festzustellen, ob das Layout Standard oder Vermächtnis ist. -> <Layout> Standard </layout> </repository> </repository> <!-Entdecken Sie die Remote-Repository-Liste der Plug-Ins. Lagerhäuser sind Häuser mit zwei Hauptkomponenten. Die erste Komponente wird als Abhängigkeit für andere Komponenten verwendet. Dies sind die meisten Komponententypen, die in einem zentralen Lagerhaus gespeichert sind. Ein weiterer Komponententyp sind Plug-Ins. Das Maven-Plug-In ist eine spezielle Art von Komponenten. Aus diesem Grund ist das Plug-in-Repository unabhängig von anderen Repositorys. Die Struktur des PluginRepositories -Elements ähnelt dem des Elements des Repositories. Jedes PluginRepository -Element gibt eine Remote -Adresse an, mit der Maven das neue Plugin finden kann. -> <PluginRepositories> <!-Enthält Informationen, die mit dem Remote-Plug-In-Repository verbunden werden müssen. See the description of profiles/profile/repositories/repository element--> <pluginRepository> <releases> <enabled/><updatePolicy/><checksumPolicy/> </releases> <snapshots> <enabled/><updatePolicy/><checksumPolicy/> </snapshots> <id/><name/><url/><layout/> </pluginRepository> </pluginRepository> </profile> </profile>
aktive Profile
<!-Aktivieren Sie manuell die Liste der Profile und definieren Sie das ActiveProfile in der Reihenfolge, in der das Profil angewendet wird. Dieses Element enthält eine Reihe von aktiven Profilelementen, von denen jede eine Profil -ID enthält. Jede in ActiveProfile definierte Profil -ID wird unabhängig von der Umgebungseinstellung aktiviert. Wenn es kein passendes Profil gibt, passiert nichts. Wenn beispielsweise ein Env-Test ein ActiveProfil ist, wird das Profil, das der ID in pom.xml (oder profile.xml) entspricht, aktiviert. Wenn ein solches Profil während des Laufs nicht gefunden werden kann, wird Maven wie gewohnt ausgeführt. -> <ActiveProfiles> <!--> <ActiveProfile> Env-Test </ActiveProfile> </activeProfiles> </Einstellungen>
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.