NewYour coding agent can read the release notes before it upgrades.Set up the MCP server โ
Maven Central
Last release today
26 Sep 2026
Release timing varies
gaps range from 3 weeks to 9 months
Unknown
no stable releases
Nothing withdrawn
no release was ever pulled
2 years old
7 releases ยท first in 2024
One column per month.
Fix #11504 : add replacement guidance to deprecated model and settings APIs ( #12890 ) @gnodet
This release candidate is expected to be the last before the Maven 4.0.0 GA release, which we aim to publish in the coming weeks, pending community feedback.
Improve standalone ApiRunner to properly apply settings (#13014) @gnodet
Strip executable() conditions from consumer POMs (#12960) @gnodet
Emit clear error when running JDK cannot compile source level (#12922) @gnodet
[mvnup] Add maven-war-plugin and maven-ear-plugin to plugin upgrade list (#12685) @gnodet
Fix #13191: add -Dmaven.maven3Personality hint to FATAL message for wrong parent relativePath (#13202) @gnodet
Fix #13200: publish a complete set from MavenProject.getArtifacts (#13203) @gnodet
Fix #13190: pre-build full reactor once using BUILD_PROJECT, drop temp dir in PluginUpgradeStrategy (#13197) @gnodet
Fix #13192: PomInlinerTransformer fails when CI-friendly property is defined in POM (#13195) @gnodet
Fix #13189: mvnup generates invalid JDK version constraint '(,-1]' (#13199) @gnodet
Fix mvnup compatibility: jar-plugin 3.4.2, exec-plugin submodule coverage, toolchain warning (#13179) @gnodet
Fixes #13135, ensure completude of the reactor summary but privilege failures to be last to stay human efficient (#13167) @gnodet
Fix glob patterns in exists()/missing() profile conditions on Windows (#13163) @gnodet
Fix #13084: sandbox profile activation context for external model builds (#13158) @gnodet
Fix: implement Node.getRepository() via local repository manager lookup (#13159) @gnodet
Fix #13100: honor repositories from legitimately-active external model profiles (#13155) @gnodet
[MNG-5146] - Fix parent relativePath mismatch check (#13157) @gnodet
Lower-case the OS family before matching it against the family names (#13154) @gnodet
Normalize lazy StAX parse failures in MavenXpp3Reader (#13149) @gnodet
Evaluate profile activation conditions lazily (#13144) @gnodet
[MNG-6979] - Initialize the current project from the execution root (#13143) @gnodet
Fix NPE on a recursive property reference in a list field (#13145) @gnodet
[MNG-6568] - Fix comparison cycles in version qualifiers (#13113) @gnodet
[MNG-8678] - Concurrent executor ignores java.lang.Error subclasses (#13067) @gnodet
Keep the basedir unset for a parent served from the project-local repository (#13212) @slachiewicz
Fix #13068: make PluginDependenciesResolver methods default (#13069) @ascheman
Fix filterByScope to expand lifecycle scopes for build ordering (#13070) @gnodet
Fix getDispatchedPaths() leaking mutable nested lists (#13057) @gnodet
[MNG-8174] - Fix NPE when a property references itself in a plugin configuration (#12935) @elharo
Fix #12985: Upgrade toolchains-plugin when adding select-jdk-toolchain execution (#13026) @gnodet
Fix ToolchainPluginStrategy to detect inherited source levels from parent POMs (#13025) @gnodet
Fix consumer POM leaving extension-contributed user properties uninterpolated (#13023) @gnodet
Fix #12986: Throw descriptive UnsupportedOperationException instead of NPE in MavenSession.lookup() (#13020) @gnodet
Fix #12989: mvnup plugin upgrades should respect project JDK version (#13024) @gnodet
[MNG-8633] - mvnup: inject standalone Nashorn for antrun JavaScript compatibility (#13022) @gnodet
mvnup: upgrade BND plugins to fix ConcurrentModificationException on JDK 17.0.13+ (#13021) @gnodet
[MNG-8765] - Pre-interpolate plugin configuration before type conversion (#13019) @gnodet
Fix #13004: enable deterministic profile activation for BUILD_CONSUMER (#13015) @gnodet
[MNG-8765] - Pre-interpolate plugin configuration before type conversion (#13017) @gnodet
Fix #12991: skip shade-plugin upgrade when custom ResourceTransformers are present (#13016) @gnodet
[MNG-12984] - Fix invalid Automatic-Module-Name entries in mvnup plugin upgrades (#13013) @gnodet
Fix compatibility spelling in CLI help text (#13012) @gnodet
[MNG-8708] - Fix parent inference (#13010) @gnodet
Scope server credentials and validate legacy relocation coordinates (#12977) @gnodet
Fix version comparison and parsing inconsistencies in maven-artifact (#12942) @slachiewicz
Validate metadata inputs across legacy and new API paths, clone proxies before decryption (#12945) @slachiewicz
[MNG-8450] - Report BOM import warnings only at declaration sites (#13003) @gnodet
[MNG-8287] - Fix consumer POM packaging profile resolution (#12967) @gnodet
Fix #12931: do not rewrite unmodified POMs in mvnup apply (#12972) @gnodet
Fix modello velocity phase for concurrent builder compatibility (#12963) @gnodet
Fix #12912: assign FastTerminal before starting the build thread (#12961) @gnodet
Fix #12774: skip consumer POM re-attachment on repeated task segments (#12916) @gnodet
Fix #12660: inherit version from imported BOM when local dep mgmt entry has no version (#12915) @gnodet
Fix #12912: use a dumb fallback terminal for all build-thread reentrant calls (#12921) @gnodet
Fix operator precedence skipping type=bom dependency imports (#12930) @gnodet
Fix: make ProjectIndex thread-safe for parallel builds (#12926) @gnodet
Fix #12602: Preserve Properties defaults in immutable copies (#12910) @goutamadwant
[MNG-8693] - Avoid resolving unused plugins for direct goals (#12920) @gnodet
Fix: interpolate properties in module/subproject path before filesystem resolution (#12924) @gnodet
Fix #12600: handle missing project index in forked executions (#12917) @gnodet
Re-include macOS JLine native libraries in distribution (#12888) @gnodet
Fix #2520: default maven.mainClass in Java instead of classworlds config (#12889) @gnodet
Fix #12646: project-local-repo clean race condition when root pom has parent (#12891) @gnodet
Wire ModelBuilderRequest.isLocationTracking() to XML parser (#12905) @gnodet
Fix #12590: NPE on null rootDirectory in DefaultModelBuilder (#12903) @gnodet
Fix #12749: suppress false ERROR in mvnsh for successful commands (#12896) @gnodet
Fix #12769: merge duplicate mirror repos to preserve snapshot policies (#12900) @gnodet
Fix #12868: Restore --define as long option for -D (#12899) @gnodet
Fix #12592: use string-based ID for forked execution cycle detection (#12898) @gnodet
Fix #12605: remove synchronized bottleneck in createProjectRealm() (#12897) @gnodet
Fix #12607: prevent session scope leak on MavenChainedWorkspaceReader constructor exception (#12895) @gnodet
Fix #12598: prevent StackOverflow from path representation mismatch in getEnhancedProperties (#12894) @gnodet
Fix field cache to let child class fields take precedence over parent (#12626) @gnodet
Fix #12685: Add tests for war/ear plugin upgrades, extract Quarkus tests (#12876) @gnodet
Preserve coordinates when merging InputLocation (#12806) @gnodet
Fix: synchronize ReflectionValueExtractor class-introspection caches (#12862) @gnodet
Fix duplicate model problem reporting, fixes #12691 (#12807) @gnodet
Fix ArtifactCoordinates.getId() double colon when classifier is empty (#12855) @gnodet
[MNG-8129] - Handle InvalidPathException for broken relativePath on Windows (#12849) @gnodet
Fix #12761: do not wait for the terminal on the thread building it (#12854) @gnodet
Make run-its profile extract the built distribution (#12852) @gnodet
[MDEP-590] - Resolve classified POM artifacts from the reactor (#12831) @wilx
[MNG-8709] - Use active profile properties for consumer POM validation (#12684) @goutamadwant
Fix #12730: quiet mode implies raw streams to avoid stdout decoration (#12830) @gnodet
Fix #12640: BOM consumer POM must not include inherited dependency management (#12802) @gnodet
[MNG-8129] - Handle InvalidPathException for broken relativePath on Windows (#12741) @gnodet
Make profile activation conditions locale-independent (#12798) @gnodet
Fix parent profile cache matching across activation contexts (#12801) @gnodet
fix(api-core): properly implement Clock.withZone() in MonotonicClock (#12797) @gnodet
Support the logical not operator in profile activation conditions (#12799) @gnodet
Fix BuildPlanExecutor thread pool leak on constructor failure (#12800) @gnodet
Fix #12704: Do not report an independent, built module as skipped (#12706) @slachiewicz
Fix SubList.get() accepting an index equal to its own size (#12656) @renechoi
Note truncated.
[maven-4.0.x] Fix #12304 : replace deprecated property expressions in mvnup ( #12308 ) @gnodet
This new release candidate of Maven 4 is released to get feedback from users.
Maven 4 has restricted a few things compared to Maven 3, so make sure to run the mvnup tool before trying your project with Maven 4.
All known issues reported in the RC-5 release notes have been fixed:
ConcurrentModificationException was fixed in #11429.xattr workaround from RC-5 is no longer needed.The following are known compatibility issues when using Maven 4. Running
mvnup before building with
Maven 4 will fix many common plugin version issues automatically. The issues
below are those that require manual intervention or upstream fixes.
Maven 4 enforces stricter validation than Maven 3. Projects may need to fix their POMs:
<artifactId>, <properties>, etc. are now rejected (Duplicated tag error). Fix the source POM.groupId:artifactId declared twice is now rejected (must be unique).${...} expressions in repository URLs, distribution management IDs, and other fields that Maven 3 silently accepted are now rejected.Non-parseable POM errors.<module> paths โ Maven 4 no longer interpolates properties like ${spark.version} in <module> elements at POM reading time.${revision} without flatten-maven-plugin may hit missing dependency version errors.${...} version expressions are rejected.Maven 4's TransitiveDependencyManager applies dependencyManagement at all transitive depths (Maven 3 only applied it at the first level). This is intentional but can change resolved versions:
maven-enforcer-plugin version rules may trigger due to downgraded transitive versions.license-maven-plugin may report new transitive dependencies not in the allow-list.Some plugins and extensions require specific versions for Maven 4:
ServiceLocator/RepositorySystem patterns incompatible with Maven 4's Sisu-based DI. Upgrade to Quarkus 3.20+.ClassNotFoundException: SimpleLogger).ClassCastException with Maven 4's resolver. See resolver#1957.Invalid Version Range Request when using ${revision} CI-friendly versions.dependency-reduced-pom.xml can cause The parents form a cycle error.clean-staging fails under Maven 4./.meta/prefixes.txt.mvnup modifies POM files. Re-run the formatter after mvnup.hadoop-project 3.1.0โ3.3.0 has invalid XML (<Xlint:-unchecked/>) causing parse errors. These need upstream fixes tracked in HADOOP-19923.<configuration> elements (#12582) @gnodetConcurrentModificationException (#11429) @desruisseauxNote truncated.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server โ