Release Notes - Maven - Version 3.9.1
Overview About the Changes
Regression fixes from Maven 3.9.0. General performance and other fixes.
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 boostrap 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.
Bug
- [MNG-7213] - StackOverflowError when version ranges are unsolvable and graph contains a cycle
- [MNG-7544] - MavenMetadataSource#retrieve(MetadataResolutionRequest) does not check for null when reading from project map
- [MNG-7676] - On Maven 3.9.0+ release, sha512 hashes have "null" classifier
- [MNG-7677] - Maven 3.9.0 is ~10% slower than 3.8.7 in large multi-module builds
- [MNG-7679] - [REGRESSION] Build fails when executing a single mojo without a POM
- [MNG-7685] - Unable to ignore certificate errors with v3.9.0
- [MNG-7693] - NPE in createModelCache, modelCacheFactory is null
- [MNG-7697] - Cannot parse POM that contains an emoji in a comment
- [MNG-7708] - Resolver in Maven 3.9+ no longer retries on a conection failure
- [MNG-7709] - plexus-utils upgrade changes the way configuration is parsed
- [MNG-7710] - Upgrade plexus-utils to 3.5.1
- [MNG-7716] - ConcurrencyDependencyGraph deadlock if no root can be selected
- [MNG-7717] - Maven warns wrongly about ${localRepository} expression
- [MNG-7720] - [REGRESSION] Build order is incorrect and does not respect Reactor Build Order
- [MNG-7721] - Maven 3.9 resolver ignores proxy configured via MAVEN_OPTS
- [MNG-7726] - Maven 3.9.0 resolves properties in file profile activation incorrectly
- [MNG-7731] - MNG-7520 incorrectly back ported to Maven 3.9.0
Improvement
- [MNG-5185] - Improve "missing dependency" error message when _maven.repositories/_remote.repositories contains other repository ids than requested
- [MNG-7686] - Speed up by replacing non-pattern #replaceAll() with #replace() or precompiled patterns
- [MNG-7706] - Deprecate ${localRepository} mojo parameter expression
Task
- [MNG-7197] - Simplify exit code handling in Windows command startup script
- [MNG-7583] - Allow concurrent access to the MavenPluginManager
- [MNG-7702] - Update to Maven Deploy Plugin 3.1.0
- [MNG-7713] - Drop option legacy-local-repository
- [MNG-7722] - Investigate GH Package Registry peculiarities