Releases: apache/maven
3.9.1
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
Dependency upgrade
3.9.0
Release Notes - Maven - Version 3.9.0
Sub-task
- [MNG-7019] - Notify also at start when profile is missing
- [MNG-7447] - Several Improvements by using Stream API
Bug
- [MNG-5222] - Maven 3 no longer logs warnings about deprecated plugin parameters.
- [MNG-6965] - Extensions suddenly have org.codehaus.plexus:plexus-utils:jar:1.1 on their classpath
- [MNG-7055] - Using MINSTALL/DEPLOY 3.0.0-M1+ does not write plugin information into maven-metadata.xml
- [MNG-7106] - VersionRange.toString() produces a string that cannot be parsed with VersionRange.createFromVersionSpec() for same lower and upper bounds
- [MNG-7131] - maven.config doesn't handle arguments with spaces in them
- [MNG-7160] - Extension And Classloaders: difference of result given extension types
- [MNG-7316] - REGRESSION: MavenProject.getAttachedArtifacts() is read-only
- [MNG-7352] - org.apache.maven.toolchain.java.JavaToolchainImpl should be public
- [MNG-7413] - Fix POM model documentation confusion on report plugins, distribution repository and profile build
- [MNG-7425] - Maven artifact downloads sometimes result in empty zip files in local repository
- [MNG-7432] - [REGRESSION] Resolver session contains non-MavenWorkspaceReader
- [MNG-7433] - [REGRESSION] Multiple maven instances working on same source tree can lock each other
- [MNG-7441] - Update Version of (optional) Logback to Address CVE-2021-42550
- [MNG-7448] - Don't ignore bin/ otherwise bin/ in apache-maven module cannot be readded
- [MNG-7459] - Revert MNG-7347 (SessionScoped beans should be singletons for a given session)
- [MNG-7471] - Resolver 1.8.0 introduces binary breakage in plugin using Resolver
- [MNG-7487] - Fix deadlock during forked lifecycle executions
- [MNG-7493] - [REGRESSION] Resolving dependencies between submodules fails
- [MNG-7504] - Warning about unknown reportPlugins parameters for m-site-p are always generated
- [MNG-7511] - Ensure the degreeOfConcurrency is a positive number in MavenExecutionRequest
- [MNG-7515] - Cannot see a dependency tree for apache-maven module
- [MNG-7529] - Maven resolver makes bad repository choices when resolving version ranges
- [MNG-7545] - Multi building can create bad files for downloaded artifacts in local repository
- [MNG-7563] - REGRESSION: User properties now override model properties in dependencies
- [MNG-7564] - Potential NPE in MavenMetadataSource
- [MNG-7568] - [WARNING] The requested profile "ABCDEF" could not be activated because it does not exist.
- [MNG-7578] - Building Linux image on Windows impossible (patch incuded)
- [MNG-7600] - LocalRepositoryManager is created too early
- [MNG-7606] - Maven 3.9.0-SNAPSHOT cannot build Maven 4.0.0-SNAPSHOT
- [MNG-7621] - Parameter '-f' causes ignoring any 'maven.config' (only on Windows)
- [MNG-7624] - Plugins without non-mandatory goalPrefix are now logging incomplete info
- [MNG-7637] - Possible NPE in MavenProject#hashCode()
- [MNG-7644] - Fix version comparison where .X1 < -X2 for any string qualifier X
- [MNG-7648] - Generated model reader is not setting location information
- [MNG-7672] - Aggregate goals executed in a submodule forks the whole reactor
New Feature
- [MNG-3655] - Allow multiple local repositories
- [MNG-6270] - Store snapshots in a separate local repository
- [MNG-7193] - Introduce MAVEN_ARGS environment variable
- [MNG-7353] - Add support for "mvn pluginPrefix:version:goal"
- [MNG-7391] - Add MojoExecution strategy and runner required by Maven Build Cache Extension
- [MNG-7454] - Include resolver-transport-http in Maven
- [MNG-7457] - Warn about deprecated plugin Mojo
- [MNG-7464] - Warn about using read-only parameters for Mojo in configuration
- [MNG-7468] - Unsupported plugins parameters in configuration should be verified
- [MNG-7486] - Create a multiline message helper for boxed log messages
- [MNG-7612] - Chained Local Repository
Improvement
- [MNG-6609] - Profile activation by packaging
- [MNG-6826] - Remove condition check for JDK8+ in FileSizeFormatTest
- [MNG-6972] - Allow access to org.apache.maven.graph
- [MNG-7068] - Active dependency management for Google Guice/Guava
- [MNG-7350] - Introduce a factory for ModelCache
- [MNG-7401] - Make MavenSession#getCurrentProject() using a thread local
- [MNG-7438] - add execution id to "Configuring mojo xxx with basic configurator" debug message
- [MNG-7445] - to refactor some useless code
- [MNG-7463] - Improve documentation about deprecation in Mojo
- [MNG-7474] - SessionScoped beans should be singletons for a given session
- [MNG-7476] - Display a warning when an aggregator mojo is locking other mojo executions
- [MNG-7478] - Improve transport selection for resolver
- [MNG-7501] - display relative path to pom.xml
- [MNG-7520] - Simplify integration of Redisson and Hazelcast for Maven Resolver
- [MNG-7547] - Simplify G level metadata handling
- [MNG-7561] - DefaultVersionRangeResolver should not try to resolve versions with same upper and lower bound
- [MNG-7590] - Allow configure resolver by properties in settings.xml
- [MNG-7608] - Make Resolver native transport the default in Maven
- [MNG-7614] - Maven should translate transport configuration fully to resolver transports.
- [MNG-7619] - Maven should explain why an artifact is present in local repository
- [MNG-7645] - Implement some #toString() methods
- [MNG-7651] - Simplify and document merge of maven.config file and CLI args
- [MNG-7658] - CI-friendly versions should only come from/rely on user properties
- [MNG-7666] - Update default binding and lifecycle plugin versions
Task
- [MNG-6399] - Lift JDK minimum to JDK 8
- [MNG-7452] - Remove JDK7 run on Maven 3.9.X Branch
- [MNG-7466] - Align Assembly Descriptor NS versions
- [[MNG-7513](https://issues.apache.o...
3.8.7
Sub-task
- [MNG-7019] - Notify also at start when profile is missing
Bug
- [MNG-7106] - VersionRange.toString() produces a string that cannot be parsed with VersionRange.createFromVersionSpec() for same lower and upper bounds
- [MNG-7316] - REGRESSION: MavenProject.getAttachedArtifacts() is read-only
- [MNG-7352] - org.apache.maven.toolchain.java.JavaToolchainImpl should be public
- [MNG-7529] - Maven resolver makes bad repository choices when resolving version ranges
- [MNG-7563] - REGRESSION: User properties now override model properties in dependencies
- [MNG-7568] - [WARNING] The requested profile "ABCDEF" could not be activated because it does not exist.
- [MNG-7578] - Building Linux image on Windows impossible (patch incuded)
- [MNG-7600] - LocalRepositoryManager is created too early
- [MNG-7621] - Parameter '-f' causes ignoring any 'maven.config' (only on Windows)
- [MNG-7637] - Possible NPE in MavenProject#hashCode()
- [MNG-7644] - Fix version comparison where .X1 < -X2 for any string qualifier X
Improvement
- [MNG-7590] - Allow configure resolver by properties in settings.xml
- [MNG-7645] - Implement some #toString() methods
Task
- [MNG-7513] - Address commons-io_commons-io vulnerability found in maven latest version
- [MNG-7634] - Revert MNG-5982 and MNG-7417
- [MNG-7636] - Partially revert MNG-5868 to restore backward compatibility (see MNG-7316)
Dependency upgrade
3.8.6
What's Changed
- [MNG-7441] 3.8.x Update version of logback by @cstamas in #708
- [MNG-7432] Resolver session contains non-MavenWorkspaceReader by @laeubi in #695
- [MNG-7459] Revert "[3.8.x][MNG-7347] SessionScoped beans should be singletons for a given session" by @gnodet in #715
- [3.8.x] [MNG-7476] Display a warning when an aggregator mojo locks other mojos executions by @gnodet in #736
Full Changelog: maven-3.8.5...maven-3.8.6
3.8.5
What's Changed
- [3.8.x][MNG-7156][MNG-7285] Add locking in MojoExecutor by @gnodet in #628
- [MNG-6326] Make the build fail if core extensions can not be loaded by @gnodet in #648
- [3.8.x][MNG-7347] SessionScoped beans should be singletons for a given session by @gnodet in #653
- [3.8.x][MNG-7386] Make sure the ModelMerger$MergingList can be serialized by @gnodet in #656
- [3.8.x][MNG-7349] Limit relocation warning message to direct dependencies only by @gnodet in #657
- [3.8.x][MNG-6727] Changed expression check to project.version and project.parent.version by @gnodet in #670
- [3.8.x][MNG-7395] - Support system-properties in extension.xml by @laeubi in #673
New Contributors
Full Changelog: maven-3.8.4...maven-3.8.5
3.8.4
What's Changed
- [MNG-6302] logging the module count by @rmannibucau in #136
- [MNG-6424] - Upgrade plexus-interpolation to 1.25 by @shemic87 in #172
- Update Jenkins build to use Maven 3.5.4 by @slachiewicz in #179
- [MNG-6473] Update Mockito to 2.21.0 by @slachiewicz in #181
- MNG-6414 Add more Apache license headers to skip downloading license … by @slachiewicz in #167
- [MNG-6479] Upgrade XMLUnit to 2.2.1 by @slachiewicz in #183
- Fixed typo in exception logging by @slachiewicz in #170
- [MNG-6490] Maven fails reporting circular dependency when the depende… by @slachiewicz in #188
- [MNG-6261] - using java File api to compare by @fabcipriano in #192
- MNG-6529 - ProjectBuild.build(projectsList, ...) ignores request.isResolveDependencies() by @mickaelistria in #193
- [MNG-6559] Fix mailing list URL by @johnlinp in #230
- [MNG-6611] Update animal-sniffer-maven-plugin to version 1.17 by @slachiewicz in #237
- [MNG-6405] Fix basedir in MavenProject.deepCopy by @jglick in #225
- [MNG-6655] Add support for "release" qualifier by @michael-o in #249
- Always deploy snapshot from master by @mickaelistria in #250
- [MNG-6665] toolchain.xml file should support environment variables by @MartinKanters in #251
- MNG-6681 dependency type = extension+classifier by @hboutemy in #254
- [MNG-6718] Upgrade to plexus-utils 3.2.1 by @gnodet in #271
- [MNG-6697] New fast model interpolator not using reflection by @gnodet in #261
- [MNG-6713] Fix ExclusionArtifactFilter to respect wildcard exclusions. by @saturnism in #269
- [MNG-6729] StringSearchModelInterpolator introspects objects from Java API by @Tibor17 in #275
- [refactor] use utility method of Objects to simplify code by @caidezhi in #284
- [MNG-6778] - Use https for maven schemaLocations by @cwansart in #299
- MNG-6759: Fix issue where MavenMetadataSource failed to set the right… by @srdo in #294
- MNG-6771 Fix license issues on binary distribution by @eolivelli in #297
- [MNG-7236] The DefaultPluginVersionResolver should cache results for … by @gnodet in #531
- [MNG-7045] Drop CDI API from Maven by @michael-o in #540
New Contributors
- @rmannibucau made their first contribution in #136
- @shemic87 made their first contribution in #172
- @fabcipriano made their first contribution in #192
- @johnlinp made their first contribution in #230
- @jglick made their first contribution in #225
- @saturnism made their first contribution in #269
- @Tibor17 made their first contribution in #275
- @caidezhi made their first contribution in #284
- @cwansart made their first contribution in #299
- @srdo made their first contribution in #294
- @eolivelli made their first contribution in #297
Full Changelog: https://github.com/apache/maven/commits/maven-3.8.4