Apache Maven 3.6.1 Released

The Apache Maven team is pleased to announce the release of the Apache Maven 3.6.1.

Apache 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 piece of information.

You can find out more about Apache Maven at https://maven.apache.org

You can download the appropriate sources etc. from the download page

We really value the contributions of these non committers, so this section is focused on those individuals. Descriptions of the issues fixed can be found at the end of these release notes.

Issue Reporters of this release:

Code Contributors of this release:

Many thanks to all reporters and contributors for their time and support.

(Please send an email to the dev list if we missed one to mention).

Preliminary Testers

Thanks to the following preliminary testers:

  • Gabriel Belingueres
  • Francois Papon
  • Eric Lilja

Known Issues

If you are using Maven reporting, it might happen that you will get an exception which looks like this:

1[INFO] Scanning for projects...
2[ERROR] Internal error: java.lang.NullPointerException -> [Help 1]
3org.apache.maven.InternalErrorException: Internal error: java.lang.NullPointerException
4    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
5...
6Caused by: java.lang.NullPointerException
7    at org.apache.maven.model.plugin.DefaultReportingConverter.convert (DefaultReportingConverter.java:243)
8...

This is caused by using a <reportSet>..</reportSet> which does not contain a <report></report> element.

Temporarily this issue can circumvented by adding an empty <report></report> element inside the <reportSet></reportSet>.

An issue has been created to track the fix.

Overview about the changes

  • An issue has been fixed causing multiple executions of plugin goals, related to using parallel build options like mvn plugin:goal -T 4. This resulted in duplicated executions of phases. This has been fixed with MNG-5965.

  • NullPointerException related to call in parallel build like mvn -T 1C clean javadoc:aggregate MNG-5705

  • A performance issue related to artifact transfer has been found related to WAGON-537. It has been solved via the update to Maven Wagon 3.3.1.

  • There had been issues related calling Maven script like this: mvn -f ..

    • Having parentheses within the path, which has been fixed with MNG-6346.
    • Script can break having special characters as part of the path, which has been solved with MNG-6256.
  • Issue related to the Maven Resolver API which broke some IDEs (for example https://youtrack.jetbrains.com/issue/IDEA-201282); this has been fixed by MNG-6538.

  • Issue related to missing event for ToolchainsBuildingResult on EventSpy MNG-6558.

  • Issue related to support Java 9+ ClassLoader.findClass(String moduleName, String name) in Mojos. This has been fixed with MNG-6543.

  • Improvement about the memory consumption has been done with MNG-6571.

  • Issue related to relative parent POM resolution failing in 3.5.0 with complex multimodule builds has been fixed with MNG-6261.

  • Missing export for org.slf4j.event.Level has been done with MNG-6618

User visible Changes

Maven has now a an option to suppress the transfer progress when downloading/uploading in interactive mode.

1mvn --no-transfer-progress ....

or in short:

1mvn -ntp ... ....

There had been an issues like MNG-6505 and MNG-6059 related to the construction of URL's etc. within distributionManagement and scm part in the pom for multi module builds like this:

1<scm child.scm.connection.inherit.append.path="true"
2     child.scm.developerConnection.inherit.append.path="true"
3     child.scm.url.inherit.append.path="true" />
4<distributionManagement>
5   <site child.site.url.inherit.append.path="true" />
6 </distributionManagement>

Detailed explanations can be found in Inheritance Assembly and in MNG-6059

The detailed issue list

Bugs:

  • MNG-5705 - NPE on parallel build in BuilderCommon.handleBuildError(BuilderCommon.java:147)
  • MNG-5965 - Parallel build multiplies work if multiple goals are given
  • MNG-5995 - Maven itself cannot run without maven-compat
  • MNG-6256 - Maven script can break if "-f" path contains special characters
  • MNG-6261 - Relative parent POM resolution failing in 3.5.0 with complex multimodule builds
  • MNG-6262 - getCanonicalFile() is not used consistently during project resolution
  • MNG-6346 - ... was unexpected at this time when using -f option and path contains brackets
  • MNG-6374 - ModelBuilder hangs with malformed pom.xml
  • MNG-6429 - Integration Test site publishing requires Java 7 (or javadoc errors ignored)
  • MNG-6495 - ModelResolver cannot be null
  • MNG-6505 - child.(x.y).inherit.append.path value should be inherited
  • MNG-6506 - Mojos are unable to load package annotations on Java >= 9
  • MNG-6529 - ProjectBuilder.build(List<File> projects, boolean, ProjectBuildingRequest) doesn't honor ProjectBuildingRequest.isResolveDependencies()
  • MNG-6530 - Regression in ProjectBuilder when file change between invocations (introduced by MNG-6311)
  • MNG-6533 - ProjectBuilder.build(list_of_projects,...) does not contain MavenProject in exception report
  • MNG-6543 - Upgrade plexus classworld to support java 9+ ClassLoader.findClass(String moduleName, String name) in Mojos
  • MNG-6558 - ToolchainsBuildingResult event is not sent on EventSpy
  • MNG-6577 - pom.xml: Uncaught IllegalArgumentException when parsing unicode entity ref
  • MNG-6590 - DefaultProjectArtifactsCache java.lang.IllegalStateException: Duplicate artifact resolution result
  • MNG-6599 - unknown version in model id when version is defined from parent

Improvements

  • MNG-6059 - Important use cases not covered, as child.inherit.append.path affects all children
  • MNG-6159 - Child path adjustments break git scm urls
  • MNG-6213 - Maven doesn't check the validity of scope value
  • MNG-6481 - Allow to compile and test Maven with Java 11
  • MNG-6513 - Replace depreated Plexus javadoc tags with annotations in ITs
  • MNG-6515 - Fix javadoc build errors under Java 8 and 11
  • MNG-6520 - Update assembly descriptors to 2.0.0
  • MNG-6522 - Prepare Maven's Core Integration Test Suite to test with Java 12 and 13-ea
  • MNG-6572 - use int or long instead of BigIntegers for little numbers in ComparableVersion
  • MNG-6593 - track input location for super-pom
  • MNG-6597 - add input location tracking for plugins configuration
  • MNG-6600 - add input location tracking for default lifecycle bindings executions
  • MNG-6601 - add input location tracking for site's reportPlugins injected by reports conversion
  • MNG-6605 - Allow to suppress download messages in interactive mode
  • MNG-6611 - Update animal-sniffer-maven-plugin to 1.17

Wish

  • MNG-6571 - Maven memory consumption issue

Task

  • MNG-6538 - Upgrade Maven Artifact Resolver to 1.3.3 to restore API
  • MNG-6544 - Replace CacheUtils#{eq,hash} with Objects
  • MNG-6573 - Use latest Maven 3.6.0 to build Maven Core and plugins with ASF CI
  • MNG-6618 - Maven doesn't export org.slf4j.event.Level

Dependency upgrade

  • MNG-6526 - Upgrade to Wagon 3.3.1 (from 3.2.0)
  • MNG-6591 - Upgrade to Wagon 3.3.2

The full list of changes can be found in our issue management system.

Complete Release Notes

See complete release notes for all versions

  • The Apache Maven Team.