Maven 4.0 没来,3.9.13 抢先修了一波关键 Bug
往期热门文章:
1、OpenClaw跟Skills、MCP、RAG和Agent有什么关系?
2、老牌 Java JSON 库杀入 AI 赛道:一行代码省 50% Token 费用
3、55 个 AI Agent 组成虚拟公司开源,2 天就 1 万星。
4、程序员找工作,四大天坑省会城市!
5、大模型时代最讽刺的职业出现了:“大模型善后工程师”
Maven 4 叫了很久了,但是一直没来。和现在的 DeepSeek V4 一样,媒体一直在说下周发布,到现在过了好几个下周了,还是没得到发布。
现在 Maven 4 是没等来,但 Apache Maven 团队正式发布了3.9.13版本。作为 3.9.x 系列的最新维护版本,这次更新虽然没有重磅新功能,但包含了重要的 Bug 修复和依赖升级,对于追求稳定性的生产环境来说,这是一次值得关注的迭代。
接下来,我们就一起来看看这个版本的发布,带来了什么?以及这个稳定增强版值得升级吗?
版本概览

根据 Apache 官方发布说明 ,Maven 3.9.13 主要包含以下更新。
关键 Bug 修复
|
问题编号 |
修复内容 |
影响范围 |
|---|---|---|
#11711 |
SecDispatcher 由旧版 Plexus DI 管理问题 |
密码安全解密模块 |
#11577 |
MavenPluginJavaPrerequisiteChecker 正确处理 |
插件 Java 版本检查 |
小版本变化都不大。下面是针对这两个 bug 的重点解读。
-
SecDispatcher 修复:解决了安全分发器(Security Dispatcher)在使用旧版 Plexus 依赖注入框架时的管理问题,提升了密码和敏感信息处理的安全性。
-
Java 版本识别优化:修复了在检查插件 Java 前置条件时,对 Java 8(即
1.8和8两种写法)识别不一致的问题,避免了因版本号格式导致的插件兼容误判。
维护性更新
-
#11721:更新了default-bindings.xml中的默认 Maven 插件版本 -
#11547:测试框架从 JUnit 4 迁移到 JUnit 5,移除了对TestCase的依赖
小调整,算是不痛不痒。
核心依赖升级
核心依赖升级几乎每次都有的常规操作。具体见下面这个表格。
|
组件 |
升级前版本 |
升级后版本 |
说明 |
|---|---|---|---|
Maven Resolver |
1.9.25/1.9.26 |
1.9.27 |
依赖解析引擎 |
sisu-maven-plugin |
0.9.0.M4 |
1.0.0 |
Sisu 依赖注入 |
maven-parent |
45 |
47 |
父 POM |
ASM |
9.9 |
9.9.1 |
字节码操作库 |
plexus-testing |
2.0.2 |
2.1.0 |
测试框架 |
解决了什么核心问题?
这次的版本更新,主要解决了下面 3 个核心问题。我们一一展开来说。
问题 1,Java 8 版本检测的坑
看下面的场景复现。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
在 3.9.12 及更早版本中,如果你使用 1.8 作为 Java 版本,而某些插件内部使用 8 进行判断,可能会导致前置条件检查失败,抛出不兼容警告甚至构建中断。
3.9.13 修复后,Maven 现在能正确识别 1.8 和 8 是同一版本,消除了这类兼容性问题。
这个坑不知道有多少读者遇到过,结合社区里的一些文章来看,踩坑的文章阅读量还都是比较高的。
问题 2,安全解密模块的稳定性
SecDispatcher 是 Maven 用于处理服务器密码加密/解密的核心组件。此次修复解决了其在 Plexus DI 容器中的生命周期管理问题,避免了潜在的内存泄漏或解密失败风险,对使用settings-security.xml加密仓库密码的团队尤为重要。
问题 3,依赖解析性能与稳定性
Maven Resolver 升级到1.9.27,这是 Maven 的依赖解析引擎。该版本包含了多项性能优化和 Bug 修复,特别是在处理复杂传递依赖和快照版本时更加稳定。
谁应该升级?
官方强烈推荐的升级场景有下面 4 条。
-
使用 Java 8 的老项目。如果项目仍停留在 Java 8,且频繁遇到插件版本警告,3.9.13 能解决版本识别问题。
-
配置了仓库密码加密的企业环境。使用
mvn --encrypt-password加密 Nexus/Artifactory 密码的团队,安全模块修复降低了潜在风险。 -
CI/CD 流水线使用 Maven 3.9.x。GitHub Actions、Jenkins、GitLab CI 等环境中,保持构建工具最新有助于减少技术债务。
-
遇到依赖解析异常的项目。如果构建过程中偶尔出现依赖下载失败、快照版本不更新等问题,Resolver 1.9.27 可能带来改善。
除了这些,如果你在使用 3.x 的版本过程中遇到了其它 bug,也建议升级到这个最新版本。
版本对比总结
下面这个版本是官方发布文档里整理的与上一个版本相比的版本对比,供大家参考!
|
特性 |
3.9.12 |
3.9.13 |
评价 |
|---|---|---|---|
|
Java 8 兼容性 |
版本识别有歧义 |
完美支持 |
重要修复 |
|
安全模块稳定性 |
良好 |
更稳定 |
推荐升级 |
|
依赖解析引擎 |
1.9.25 |
1.9.27 |
性能优化 |
|
测试框架 |
JUnit 4 |
JUnit 5 |
现代化 |
|
新功能 |
无 |
无 |
维护版本 |
写在最后
Maven 3.9.13 是一个典型的稳定增强版。它没有颠覆性的新特性,但通过修复 Java 版本检测、安全模块管理和依赖解析等关键问题,进一步夯实了 3.9.x 系列的可靠性。
对于正在使用 3.9.x 的团队,建议尽快安排升级;对于仍在使用 3.6.x 或 3.8.x 的项目,这也是一个不错的契机,评估迁移到 3.9.x 系列的可行性。
毕竟,构建工具的稳定性,是整个研发效能的基石。
往期热门文章:
1、程序员缺乏经验的 7 种表现! 2、Skill 比 MCP 省 99% 的 Token,MCP 不是银弹,是 Token 黑洞 3、代码提交数为 0,123 个 CVE 安全漏洞,MySQL 正在“自杀” 4、阿里开源项目!属于Java开发者的智能体框架! 5、Spring让Java慢了30倍,JIT、AOT等让Java比Python快13倍,比C慢17% 6、Spring 7.0.4 杀疯了,40 个新特性、15 个 Bug 修复、1 个死锁终结! 7、IntelliJ IDEA 2026发布:被开发者催了 6 年,这个细节终于修了! 8、利用闲置 Mac 从零部署 OpenClaw 教程 9、一款高性能、无侵入的 Java 性能监控神器 10、Spring Boot 4.0 全面拥抱 Jackson 3!小心有坑~
更多推荐


所有评论(0)