Die settings.xml Datei und das .m2
Verzeichnis spielen in Maven eine zentrale Rolle, um benutzerspezifische
Einstellungen, Repository-Konfigurationen und andere globale Parameter
zu verwalten. Diese Strukturen ermöglichen eine flexible und sichere
Konfiguration, die unabhängig von einzelnen Projekt-POMs
funktioniert.
Die settings.xml ist eine XML-Konfigurationsdatei, die
sich standardmäßig in ${user.home}/.m2 befindet (unter
Windows z.B. C:\Users\<Username>\.m2\settings.xml).
Hier werden persönliche Maven-Einstellungen, Server-Authentifizierungen,
Proxy-Einstellungen und Profile definiert.
<settings>
<!-- Beispiel für eine benutzerspezifische Konfiguration -->
</settings>Wichtige Abschnitte:
Lokales Repository
Definiert den Pfad zum lokalen Maven-Repository (Standard:
${user.home}/.m2/repository):
<localRepository>/path/to/local/repo</localRepository>Server-Konfigurationen
Enthält Login-Daten für Repositories oder Deployment-Server:
<servers>
<server>
<id>my-repo</id>
<username>my-username</username>
<password>my-password</password>
</server>
</servers>Proxy-Einstellungen
Für Umgebungen, die einen Proxy zur Internetverbindung benötigen:
<proxies>
<proxy>
<id>example-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>somepassword</password>
<nonProxyHosts>www.google.com|*.example.com</nonProxyHosts>
</proxy>
</proxies>Mirrors
Ermöglicht das Spiegeln oder Ersetzen bestimmter Repositories:
<mirrors>
<mirror>
<id>central-mirror</id>
<mirrorOf>central</mirrorOf>
<url>http://central-mirror.example.com/repo</url>
</mirror>
</mirrors>Profile
Legen benutzerspezifische Build-Konfigurationen fest. Diese können
automatisch oder manuell aktiviert werden:
<profiles>
<profile>
<id>development</id>
<properties>
<env>dev</env>
</properties>
<repositories>
<repository>
<id>dev-repo</id>
<url>http://dev-repo.example.com/repo</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>development</activeProfile>
</activeProfiles>maven-security Plugin).Das .m2 Verzeichnis liegt im Benutzerverzeichnis
(${user.home}) und enthält alle Benutzereinstellungen sowie
das lokale Maven-Repository.
.m2/
|-- repository/
|-- wrapper/
|-- settings.xml
|-- settings-security.xml
groupId/artifactId/version.mvnw), um Projekte mit
einer festgelegten Maven-Version zu bauen.maven-security Plugins.Mit der richtigen Nutzung der settings.xml und einem gut
strukturierten .m2 Verzeichnis können Maven-Nutzer ihre
Build-Umgebungen an individuelle Anforderungen anpassen. Das Ergebnis
sind konsistente, automatisierte und sichere Build-Prozesse für
unterschiedlichste Projekte.