Release Notes – Maven 3.5.0

The Apache Maven team would like to announce the release of Maven 3.5.0.

Maven 3.5.0 is available for download.

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central place.

The core release is independent of the plugins available. Further releases of plugins will be made separately. See the PluginList for more information.

We hope you enjoy using Maven! If you have any questions, please consult:

the web site: http://maven.apache.org/

the maven-user mailing list: http://maven.apache.org/mailing-lists.html

the reference documentation: http://maven.apache.org/ref/3.5.0/

Why not Maven 3.4.0? After Maven 3.3.9 was released, the Eclipse Aether project was retired and the code base was migrated to the Apache Maven project. The original goal for the 3.4.0 release was to replace Aether with the exact same code after migration to the Apache Maven project and then proceed with bug fixes to the resolver code as well as other areas of Maven. The migration of the code between the two foundations took longer than expected and as a result there were other changes committed to Maven core that were outside the scope of intent for 3.4.0. In order to refocus on the original intent for 3.4.0, the decision was taken to revert the Maven core history to the point of the 3.3.9 release and merge in the desired changes one at a time. Because there had been a lot of communication about different features being delivered and bugs fixed in Maven 3.4.0 and the new history may not contain them in the first release, the decision was taken to forever burn the 3.4.x release line. More detail on this decision can be read in the mailing list archive.

Reporters and Contributors of this release Bugs: MNG-5963 reporter: Larry Singer

MNG-5962 reporter/contributor: Miriam Lee

MNG-5961 reporter: Mike Drob

MNG-5958 reporter: Meytal Genah, contributor: Anton Tanasenko

MNG-5852 reporter: Jeffrey Alexander

MNG-5823 reporter: Tobias Oberlies

MNG-5815 reporter: Peter Kjær Guldbæk

MNG-5368 reporter: Andrew Haines

MNG-6090 reporter: Harald Wellmann

MNG-6173 reporter/contributor: Christoph Böhme Improvements: MNG-6030 reporter: Andriy contributor: Andriy

MNG-5934 reporter/contributor: Alex Henrie

MNG-5883 reporter: Ben Caradoc-Davies

MNG-3507 contributors: Jason Dillon, Sébastian Le Merdy Many thanks to all reporters and contributors for their time and support.

Testers The following members of the Maven community provided valuable feedback during the release process: Grzegorz Grzybek

Petr Široký

Mark Derricutt,

Dejan Stojadinović

Thomas Collignon

Fred Cooke

Raphael Ackermann

Elliot Metsger

Chas Honton

Dennis Kieselhorst Thank you for your time and feedback.

Overview about the changes The most obvious change you may encounter is that the console output has colors now MNG-3507, MNG-6093.

The new project.directory special property adds support in every calculated URLs (project, SCM, site) for module directory name that does not match artifactId MNG-5878

The JAVA_HOME discovery has been reduced to simply check if JAVA_HOME is set or not then trying to discover via which java , nothing more MNG-6003.

The build bootstrapping support via Apache Ant has been removed. You can now only bootstrap Maven build with a previous version of Maven, but not with Ant any more MNG-5904.

Based on problems in using M2_HOME related to different Maven versions installed and to simplify things, the usage of M2_HOME has been removed and is not supported any more MNG-5823, MNG-5836, MNG-5607.

Important change for windows users: The usage of %HOME% has been replaced with %USERPROFILE% MNG-6001

Several issues have been reported and fixed related to the mvn script either for Unix/Linux/Cygwin/Solaris or for Windows MNG-5815, MNG-5852, MNG-5963, MNG-6022.

In Maven 3.3.9, we have removed bindings for maven-ejb3-plugin because it does not exist. We follow-up and removed the artifact handler for ejb3 and the par lifecycles MNG-6014, MNG-6017.

In previous Maven versions, there had been a larger problem related to memory usage in case of very large reactors (200-300 modules or more) which caused failures with out of memory exceptions or the need to increase the memory settings. This problem has been fixed with MNG-6030.

If you have defined a property within the .mvn/maven.config file, it was not possible to overwrite the property via command line. This has been fixed with MNG-6078.

If you have are using <prerequisites>..</prerequisites> for a non maven-plugin project, you will get a WARNING which looks like this: [INFO] Scanning for projects... [WARNING] The project org.apache.maven:maven:pom:3.5.0 uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html This will tell you to use maven-enforcer-plugin to check the version of Maven you are expecting to build your project with, instead of using prerequisites MNG-5297, MNG-6092.

Replaced Eclipse Aether with Maven Resolver MNG-6110, MNG-6140.

Using of CI friendly versions via ${revision} , ${sha1} and/or ${changelist} has been fixed MNG-6057, MNG-6090 and MNG-5895. It is very important to know if you are using the previously named properties for a version in your pom you have to use flatten-maven-plugin if you like to do an mvn install or mvn deploy more details can be found at Maven CI Friendly Versions.