Build Management

Maven 3.5 ist da

Melanie Feldmann

© Shutterstock / Worraket

Maven hat den Sprung von 3.3.9 auf 3.5 gemacht. Neben dem großen Hüpfer bei der Versionsnummer gibt es einige Änderungen und Neuheiten.

Die offensichtlichste Änderung von Maven 3.5 ist, dass die Konsole jetzt Text in ANSI-Farben ausgibt. So soll das Logging übersichtlicher und einfacher zu lesen sein. Weitere Änderungen und Neuheiten verstecken sich mehr im Detail. Die JAVA_HOME-Discovery checkt jetzt nur noch, ob JAVA-HOME gesetzt ist oder nicht und versucht dann mit which_java die Variable zu finden. Das macht einige Codemagie in Maven überflüssig. Um Maven besser für Continuous Integration nutzen zu können, lassen sich  ${revision}, ${sha1} und ${changelist} als Platzhalter für Versionsnummern in der POM-Datei verwenden. Hier wurden Probleme behoben. Nutzer der alten Properties müssen das Flatten-Maven-Plug-in nutzen, wenn sie ein mvn install oder ein mvn deploy durchführen wollen. Details dazu gibt es in der Doku.

Nicht mehr vorhanden ist die Unterstützung von Bootstraping mit Apache Ant. Nun lassen sich Maven-Builds nur noch mit einer älteren Version von Maven bootstrapen. Auch M2_HOME wurde entfernt, weil es bei der Nutzung zu Problemen kam, wenn mehrere Maven-Versionen installiert waren. Für Windows-Nutzer ist es wichtig zu wissen, dass %HOME% durch %USERPROFILE% ersetzt wurde.

Ein größerer Bugfix war  die Lösung eines Speicherproblems, das dazu führte, dass es bei sehr großen Anwendungen mit 200 bis 300 Modulen zu Out-of-memory-Fehlern kam. Bisher musste man die Speichereinstellungen anpassen. Dieses Problem tritt nun nicht mehr auf. Alle Änderungen und Bugfixes finden sich in den Release Notes. Direkt zum Download geht es hier lang.

Lesen Sie auch: Docker mit Maven steuern

Warum der Sprung auf 3.5?

Es gibt keine Version 3.4, weil es zu Problemen bei der Integration des Apache Maven Resolver kam, dem Ersatz des von der Eclipse Foundation in Rente geschickten Eclipse-Aether-Projekts. Der Maven Resolver ist eine Library für Artefakt-Repositorys und die Auflösung von Dependencys. Der Resolver kümmert sich um die Spezifizierung von lokalen Repositorys, remote Repositorys, Entwickler-Workspaces, Artefaktübermittlung und Artefaktauflösung. Außerdem sorgten Kommunikationsprobleme für einige Verwirrung. Deswegen entschloss sich das Entwicklerteam dazu, den Resolver zusammen mit den Bugfixes und Änderungen in eine gemeinsame Version zu nehmen. So sollen Änderungen nachvollziehbar bleiben und die beiden Projekte nahtloser ineinander übergehen.

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare
  1. Karl Heinz Marbaise2017-04-11 22:15:29

    Sehr geehrte Frau Feldmann,

    ich habe Ihren Artikel gelesen und sehe dort eine Unklarheit und zwar:

    Nutzer der alten Properties müssen das Maven-Enforcer-Plug-in nutzen, wenn sie ein mvn install oder ein mvn deploy durchführen wollen. Details dazu gibt es in der Doku.

    Die Verlinkte Dokumentation erwähnt das Maven-Enforcer-Plugin aber nicht. Abgesehen davon ist die Nutzung von ${revision}, ${sha1} und ${changelist} auch nicht davon abhängig bzw. kann auch damit nicht überprüft werden.

    In den Release Notes wir die Nutzung von .. beschrieben, bei der jetzt einen Änderungen statt gefunden hat. Zum einen wird nun eine WARNING ausgegeben und weiterhin wird erwähnt, dass die Möglichkeit zur Überprüfung, ob die entsprechend gewünschte Maven version Verwendung findet mithilfe des maven-enforcer-plugin's durchgeführt werden sollte.

    Weiterhin möchte ich noch Erwähnen, dass die Nutzung der Properties ${revision} etc. nicht erst in Maven 3.5.0 hinzugekommen ist sondern schon seit Maven 3.2.1 vorhanden sind (https://maven.apache.org/docs/3.2.1/release-notes.html) aber noch einige Fehler hatte die mit der Release 3.5.0 gefixed wurden.

    Mit freundlichem Gruß
    Karl Heinz Marbaise

  2. Melanie Feldmann2017-04-12 08:18:49

    Danke für die Hinweise. Fehler sind korrigiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.