Release Notes – Maven 3.9.8

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

Maven 3.9.8 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 plugin releases. Further releases of plugins will be made separately. See the PluginList for more information.

If you have any questions, please consult:

Overview About the Changes

Regression fixes and other improvements from Maven 3.9.7. All users already on Maven 3.9.x are advised to upgrade.

Bug fixes ranges from restored ability (lost in 3.9.7) to build some project that depends on artifact with invalid POMs, OS profile activation issues and many other minor but annoying bugs. The “known issue” (bug) from 3.9.7, MNG-8116 was fixed as well. As part of fix Eclipse Sisu is updated to version 0.9.0.M3, that carries ASM 9.7 (Java 23).

Improvements on other hand include added logging of those aforementioned invalid POMs (in DEBUG even telling what is the problem with them), added more detailed resolution error logging (showing involved repositories) and improved output for plugin validation and more.

Finally, Maven 3.9.8 went thru a “diet”, and lost commons-lang from it's constituents. This change has no effect on plugins (as commons-lang was never published artifact by Core), while extensions, that do depend on presence of it hopefully did declare it as dependency (as would be best practice).

Mild updates happened to default plugin bindings as well.

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

Known issues


Potentially Breaking Core Changes (if migrating from 3.8.x)

  • The Maven Resolver transport has changed from Wagon to “native HTTP”, see Resolver Transport guide.
  • Maven 2.x was auto-injecting an ancient version of plexus-utils dependency into the plugin classpath, and Maven 3.x continued doing this to preserve backward compatibility. Starting with Maven 3.9, it does not happen anymore. This change may lead to plugin breakage. The fix for affected plugin maintainers is to explicitly declare a dependency on plexus-utils. The workaround for affected plugin users is to add this dependency to plugin dependencies until issue is fixed by the affected plugin maintainer. See MNG-6965.
  • Mojos are prevented to bootstrap new instance of RepositorySystem (for example by using deprecated ServiceLocator), they should reuse RepositorySystem instance provided by Maven instead. See MNG-7471.
  • Each line in .mvn/maven.config is now interpreted as a single argument. That is, if the file contains multiple arguments, these must now be placed on separate lines, see MNG-7684.
  • System and user properties handling cleanup, see MNG-7556. As a consequence, this may introduce breakage in environments where the user properties were used to set system properties or other way around, for example see MNG-7887.
  • Plugins and extensions used by your build are checked against Maven supported APIs and conventions: this “plugin validation” may report WARNINGs at the end of your build. See plugin validation documentation to better understand what to do when your build suffers from such warnings.

Complete Release Notes

See complete release notes for all versions