Apache Maven 3.9.0 现已发布。Apache Maven 是一个项目管理和构建工具。基于项目对象模型(POM)的概念, Maven 可以从中心位置管理项目的构建、报告和文档。
此版本更新内容如下:
Sub-task
- [MNG-7019] - 当配置文件丢失时也在 start 时通知
- [MNG-7447] - 通过使用 Stream API 进行多项改进
Bug
- [MNG-5222] - Maven 3 不再记录有关已弃用插件的警告参数。
- [MNG-6965] - 扩展突然有了 org.codehaus.plexus:plexus-utils🏺1.1 在他们的类路径上
- [MNG-7055] - 使用 MINSTALL/DEPLOY 3.0.0-M1+ 不会将插件信息写入 maven-metadata.xml
- [MNG-7106] -VersionRange.toString() 产生的字符串无法用 VersionRange.createFromVersionSpec()解 析出相同的下限和上限。
- [MNG-7131] - maven.config 不处理其中包含空格的参数
- [MNG-7160] - 扩展和类加载器:给定扩展类型的结果差异
- [MNG-7316] - REGRESSION:MavenProject.getAttachedArtifacts() 是只读的
- [MNG-7352] - org.apache.maven.toolchain.java.JavaToolchainImpl 应该是公共的
- [MNG-7413] - 修复报告插件、分发库和配置文件构建方面的 POM 模型文档混乱问题
- [MNG-7425] - Maven 工件下载有时会导致本地仓库中出现空的 zip 文件
- [MNG-7432] - [REGRESSION] Resolver 会话包含 non-MavenWorkspaceReader
- [MNG-7433] - [REGRESSION] 多个 Maven 实例在同一个 source tree 上工作可以互相锁定
- [MNG-7441] - 更新(可选)Logback 版本以解决 CVE-2021-42550
- [MNG-7448] - 不要忽略 bin/,否则 apache-maven 模块中的 bin/ 不能被读取
- [MNG-7471] - Resolver 1.8.0 在使用 Resolver 的插件中引入了 binary breakage
- [MNG-7487] - 修复 forked lifecycle executions 期间的死锁
- [MNG-7493] - [REGRESSION] 解决子模块之间的依赖关系失败
- [MNG-7515] - 看不到 apache-maven 模块的 dependency tree
- ......
New Feature
- [MNG-3655] - 允许多个本地存储库
- [MNG-6270] - 将快照存储在单独的本地存储库中
- [MNG-7193] - 引入 MAVEN_ARGS 环境变量
- [MNG-7353] - 添加对“mvn pluginPrefix:version:goal”的支持
- [MNG-7391] - 添加 Maven Build Cache Extension 所需的 MojoExecution strategy 和 runner
- [MNG-7454] - 在 Maven 中包含 resolver-transport-http
- [MNG-7457] - 关于已弃用的插件 Mojo 的警告
- [MNG-7464] - 关于在配置中为 Mojo 使用只读参数的警告
- [MNG-7468] - 配置中不支持的插件参数应该被验证
- [MNG-7486] - 为 boxed log 消息创建多行消息助手
- [MNG-7612] - 链式本地存储库
Improvement
- [MNG-6609] - 通过打包激活配置文件
- [MNG-6826] - 在 FileSizeFormatTest 中删除 JDK8+ 的条件检查
- [MNG-6972] - 允许访问 org.apache.maven.graph
- [MNG-7068] - Google Guice/Guava 的主动依赖管理
- [MNG-7350] - 为 ModelCache 引入一个 factory
- [MNG-7401] - 使 MavenSession#getCurrentProject() 使用本地线程
- [MNG-7438] - 在“Configuring mojo xxx with basic configurator”调试信息中添加执行 D
- [MNG-7445] - 重构一些无用的代码
- [MNG-7463] - 改进有关 Mojo 中弃用的文档
- [MNG-7478] - 改进解析器的传输选择
- [MNG-7501] - 显示 pom.xml 的相对路径
- [MNG-7520] - 为 Maven 解析器简化 Redisson 和 Hazelcast 的集成
- [MNG-7547] - 简化 G level 元数据处理
- ......
Task
- [MNG-6399] - 将 JDK 最低提升到 JDK 8
- [MNG-7452] - 删除在 Maven 3.9.X 分支上运行的 JDK7
- [MNG-7466] - 对齐 Assembly Descriptor NS 版本
- [MNG-7513] - 解决maven最新版本中发现的commons-io_commons-io漏洞
- [MNG-7523] - Back port MAVEN_ARGS 至 Apache Maven 3.9.0
- [MNG-7556] - 清理用户属性和系统属性之间的概念
- [MNG-7618] - 使用 goalPrefix 而不是 artifactId 来显示 mojos 被执行
- [MNG-7634] - Revert MNG-5982 和 MNG-7417
- [MNG-7636] - Partially revert MNG-5868 以恢复向后的兼容性(参见 MNG-7316)
Dependency upgrade
- [MNG-6878] - 将 Guice 升级到 4.2.3
- [MNG-7247] - 将 Maven Resolver 升级到 1.7.2
- [MNG-7453] - 将 Maven Resolver 升级到 1.8.0
- [MNG-7488] - 将 SLF4J 升级到 1.7.36
- [MNG-7489] - 将 JUnit 升级到 4.13.2
- [MNG-7491] - 将 parent POM 为 36
- [MNG-7499] - 将 Maven 解析器升级到 1.8.1
- [MNG-7502] - 将 Guice 升级到 5.1.0
- [MNG-7506] - 将 Maven Wagon 升级到 3.5.2
- [MNG-7522] - 将 Maven Resolver 升级到 1.8.2
- [MNG-7530] - 将 Apache Maven parent POM 升级到版本 37
- [MNG-7586] - 将 Maven Resolver 更新到 1.9.2
- [MNG-7613] - 将 Apache Maven parent POM 升级到版本 38
- [MNG-7641] - 将 Maven Wagon 升级到 3.5.3
- [MNG-7668] - 将 Maven Resolver 更新到 1.9.4
- [MNG-7675] - 将 Maven Parent 更新为 39
更多详情可查看官方公告。