Releases: apache/maven
3.9.4
Release Notes - Maven - Version 3.9.4
Bug
- [MNG-7846] - endless loop in DefaultExceptionHandler.getMessage()
Dependency upgrade
Full Changelog: maven-3.9.3...maven-3.9.4
4.0.0-alpha-7
What's Changed
- [MNG-6825] Replace FileUtils with Commons IO by @timtebeek in #1067
- [MNG-7738] don't dump raw stack traces to System.err by @elharo in #1064
- Switch version to 4.0.0 for @SInCE tags by @gnodet in #1068
- [MNG-7720] Simplify code by @gnodet in #1063
- remove unused branches in fake by @elharo in #1069
- [MNG-7714] correct comment by @elharo in #1074
- [MNG-7749] Upgrade animal-sniffer from 1.21 to 1.23 by @slawekjaranowski in #1072
- [MNG-6825] Replace StringUtils by @timtebeek in #1078
- [MNG-6825] Get rid of commons-lang by @gnodet in #1080
- [MNG-7750] Ensure no unwanted interpolation in plugins from profiles. by @nielsbasjes in #1076
- Simplify logger creation leveraging Map.computeIfAbsent by @gnodet in #1081
- [MNG-7766] - Migrate to use mockito-bom 4.11.0 by @khmarbaise in #1090
- [MNG-7763] Provide UTF-8 as a default value for project.build.sourceEncoding and project.reporting.outputEncoding by @gnodet in #1085
- [MNG-7038] Introduce public properties to point to to the root and top directory of (multi-module) project by @gnodet in #1061
- [MNG-7038] Fixes for topDirectory by @cstamas in #1100
- [MNG-7769] Update Resolver to 1.9.10 by @cstamas in #1102
- [MNG-6303] Interpolate user supplied properties and command line arguments by @gnodet in #1062
- [MNG-7778] - Include suppressed exceptions when logging failures by @marcphilipp in #1103
- [MNG-6829] Replace any StringUtils#isEmpty(String) and #isNotEmpty(String) by @timtebeek in #1104
- [MNG-7785] Clean usage of SessionData by @gnodet in #1094
- [MNG-7743] Make the build work on JDK 20 by @psiroky in #1065
- Prefer Java standard library to Plexus util by @elharo in #1015
- [MNG-7783] Profile source point to file instead of to module by @gnodet in #1110
- [MNG-7784] Fix compatibility for SuperPomProvider by @gnodet in #1109
- [MNG-7780] DefaultArtifact.equals throws NullPointerException if o.version is null by @CrazyHZM in #1108
- [MNG-7639] Add unit test for DefaultRepositorySystemSessionFactory#newRepositorySession by @CrazyHZM in #1096
- [MNG-7587] Upgrade to sisu 0.9.0.M2 by @gnodet in #1119
- [MNG-7796] Be lenient when using toRealPath by @gnodet in #1130
- [MNG-7797] Return BRIEF mode by @hgschmie in #1132
- [MNG-7795] IllegalArgumentException: 'other' has different root during plugin validation by @gnodet in #1133
- [MNG-7585] Remove duplicate classes by @gnodet in #1135
- [MNG-7698] Support comments in maven.config by @gnodet in #1134
- [MNG-7655] Switch to plexus-utils / plexus-xml 4 by @gnodet in #1093
- [MNG-7604] Removal of pom.* interpolation makes some older plugins defunct by @gnodet in #1137
- [MNG-7548] Kill off "legacy" repository metadata support by @gnodet in #1138
- [MNG-7740] Remove old temporary consumer*pom files from buildDir by @gnodet in #1117
- Fix code style for code generated by velocity templates by @gnodet in #1146
- [MNG-7338] Automatically activate batch-mode and make output quiet when running in CI. by @MartinKanters in #869
- [MNG-7790] Update lifecycle plugins by @cstamas in #1154
- [MNG-7751] Provide a way to inject XmlNode into plugins by @gnodet in #1071
- [MNG-7806] Plugins verification - remove used in module(s) report by @slawekjaranowski in #1157
- Simplify code by @gnodet in #1156
- [MNG-7790] Update lifecycle plugins, take 2 by @cstamas in #1163
- Update some build plugins by @cstamas in #1166
- [MNG-7794][MNG-7809] Deprecate RepositorySystem and make maven-compat optional by @gnodet in #1150
- [MNG-7812] Get rid of maven-shared-utils by @gnodet in #1158
- [MNG-5600] Dependency management import should support exclusions by @gnodet in #1155
- [MNG-7811] Plugins verification - reporting improvements by @slawekjaranowski in #1169
- [MNG-7816] Bump parent pom from 39 to 40 by @gnodet in #1170
- [MNG-7764] Small code improvements by @khmarbaise in #1088
- [MNG-7800] Bump maven-resolver from 1.9.10 to 1.9.11 by @gnodet in #1171
- [MNG-7800] Update resolver to 1.9.12 by @cstamas in #1177
- [MNG-5659] Provide project-specific settings located in ${session.rootdir}/.mvn/settings.xml by default by @gnodet in #1059
- [MNG-7814] Use location tracking for settings by @gnodet in #1164
- [MNG-7059][MNG-4645] Move Central repo definition out of Maven's core so it can be more easily changed by @gnodet in #1139
- [MNG-6112] Make central update policy coherent by @gnodet in #1142
- [MNG-7805] Make the modelVersion optional when using build pom by @gnodet in #1148
- [MNG-7632] Regression: combine.children breaks when combining executions by @gnodet in #1168
- [MNG-7714] Fixed a scenario in version sorting where sp1 is less than final by @CrazyHZM in #1099
- [MNG-7800] Update resolver to 1.9.13 by @cstamas in #1181
- [MNG-7824] Bump plexus-xml from 4.0.0 to 4.0.1 by @gnodet in #1184
- [MNG-7228] MavenProject.getOriginalModel returns interpolated parts by @gnodet in #1183
New Contributors
- @timtebeek made their first contribution in #1067
- @marcphilipp made their first contribution in #1103
- @psiroky made their first contribution in #1065
- @CrazyHZM made their first contribution in #1108
Full Changelog: maven-4.0.0-alpha-5...maven-4.0.0-alpha-7
3.9.3
Release Notes - Maven - Version 3.9.3
Bug
- [MNG-7786] - Maven Plugin Validation message is misleading
- [MNG-7795] - IllegalArgumentException: 'other' has different root during plugin validation
- [MNG-7796] - Top directory cannot be computed
- [MNG-7799] - Plugin validation falsely reports there are issues (but shows none)
- [MNG-7811] - Plugins verification - reports are inconsistent
- [MNG-7818] - [REGRESSION] maven improperly excludes hamcrest-core from junit
- [MNG-7819] - Create IT that exercise file locking with snapshots
Improvement
- [MNG-7698] - Allow comments in .mvn/maven.config
- [MNG-7785] - Clean usage of SessionData
- [MNG-7787] - Introduce new options for plugin validation
- [MNG-7788] - Plugin Validation Report should be printed before build summary
- [MNG-7789] - Plugin Dependency Validations use wrong data set
- [MNG-7806] - Plugins verification - remove used in module(s) report
- [MNG-7823] - Make plugin validation level parsing more consistent
Task
- [MNG-5987] - Document the algorithm calculating the order of plugin executions inside a phase.
- [MNG-7743] - Make the build work on JDK 20
- [MNG-7790] - Update lifecycle plugins
- [MNG-7791] - Split validation issues into "user actionable" and "plugin dev actionable"
- [MNG-7797] - Return BRIEF mode, simply map it onto SUMMARY
- [MNG-7807] - Update Super POM plugins
Dependency upgrade
3.9.2
Release Notes - Maven - Version 3.9.2
Bug
- [MNG-7750] - Interpolated properties in originalModel in an active profile.
- [MNG-7759] - java.lang.NullPointerException at org.apache.maven.repository.internal.DefaultModelCache.newInstance (DefaultModelCache.java:37)
Improvement
- [MNG-7712] - Core should issue a warning if plugin depends on maven-compat
- [MNG-7741] - Add more information when using -Dmaven.repo.local.recordReverseTree=true
- [MNG-7754] - Improvement and extension of plugin validation
- [MNG-7767] - Tone down plugin validation report
- [MNG-7778] - Maven should print suppressed exceptions when a mojo fails
Task
- [MNG-7749] - Upgrade animal-sniffer from 1.21 to 1.23
- [MNG-7774] - Maven config and command line interpolation
Dependency upgrade
4.0.0-alpha-5
What's Changed
- [MNG-7672] Fork should only execute the project and its submodules by @gnodet in #968
- [MNG-7673] IllegalArgumentException thrown for invalid checksum 'never' by @gnodet in #972
- Fix site plugin warning by @cstamas in #974
- Add bin packages to SHA512 checksumming as well by @cstamas in #978
- [MNG-7689] Check if execution lifecycle phase is not null by @c00ler in #996
- [MNG-7702] Update to Maven Deploy Plugin 3.1.0 by @cstamas in #1007
- [MNG-7695] Update resolver to 1.9.5 by @cstamas in #1011
- [MNG-7706] Deprecate 'localRepository' parameter expression (#1009) by @cstamas in #1012
- remove unused code by @elharo in #1016
- Simplify code with try with resources by @elharo in #1017
- [MNG-7713] Drop legacy-local-repository option by @cstamas in #1020
- [MNG-7713] Make Maven fail if option present (#1021) by @cstamas in #1022
- [MNG-7700] test some edge cases with leading zeroes by @elharo in #1014
- [MNG-7683] Iterate over each dominant child by @c00ler in #986
- [MNG-7717] Maven warns wrongly about deprecated parameter by @cstamas in #1031
- [MNG-7716] ConcurrencyDependencyGraph deadlock if no root is selected by @laeubi in #1029
- restore src/mdo/reader.vm by @elharo in #1034
- [MNG-7715] Update to resolver 1.9.6 by @cstamas in #1036
- Remove plexus utils dependency by @elharo in #1032
- Replace deprecated methods that don't properly handle encoding by @elharo in #1033
- [MNG-7720] Wrong build order of forked projects by @cstamas in #1040
- [MNG-7710] Upgrade plexus-utils to 3.5.1 by @gnodet in #1042
- Remove references to Xpp3DomBuilder and use XmlNodeBuilder instead by @gnodet in #1045
- Fix callee closing streams and readers instead of callers by @gnodet in #1043
- Additional XmlNode tests from plexus-utils by @gnodet in #994
- [MNG-7728] Fix mutable api in PluginContainer by @gnodet in #1019
- [MNG-7709] Regression in configuration merge by @gnodet in #1023
- [MNG-7727] Remove DefaultMavenProfilesBuilder by @gnodet in #1044
- [MNG-7724] don't warn about unsupported SLF4J configs; no one cares by @elharo in #1051
- [MNG-7723] Upgrade to Maven Resolver 1.9.7 by @cstamas in #1046
- [MNG-7730] remove unused MavenXmlException class by @elharo in #1049
- update a few URLs by @elharo in #1052
- [MNG-7678] Settings (v3) and Settings.Builder() cannot unset a non-null field by @gnodet in #983
- [MNG-7725] Update surefire to 3.0.0 in default binding by @slawekjaranowski in #1056
- [MNG-7697] Fix assembly which should not include original plexus-utils-3.5.0 by @gnodet in #1057
New Contributors
Full Changelog: maven-4.0.0-alpha-4...maven-4.0.0-alpha-5
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