发行说明 – Maven 3.6.1

Apache Maven 团队宣布发布 Maven 3.6.1

Maven 3.6.1可供下载

Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一个中心位置管理项目的构建、报告和文档。

核心版本独立于可用的插件。插件的进一步版本将单独制作。有关更多信息,请参阅插件列表。

我们希望您喜欢使用 Maven!如果您有任何问题,请咨询:

本新闻稿的记者和贡献者

我们非常重视这些非提交者的贡献,因此本节将重点关注这些人。已修复问题的描述可在这些发行说明的末尾找到。

本新闻稿的问题记者:

此版本的代码贡献者:

非常感谢所有记者和投稿人的时间和支持。

(如果我们错过了提及,请向开发人员列表发送电子邮件)。

初步测试人员

感谢以下初步测试人员:

  • 加布里埃尔·贝林格勒斯
  • 弗朗索瓦·帕蓬
  • 埃里克·利利亚

已知的问题

[INFO] Scanning for projects...
[ERROR] Internal error: java.lang.NullPointerException -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.NullPointerException
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
...
Caused by: java.lang.NullPointerException
    at org.apache.maven.model.plugin.DefaultReportingConverter.convert (DefaultReportingConverter.java:243)
...

这是由使用<reportSet>..</reportSet>不包含<report></report>元素的 a 引起的。

暂时可以通过<report></report><reportSet></reportSet>.

已创建 MNG-6636 问题以跟踪 Maven 3.6.2 中的修复。

有关更改的概述

  • 已修复导致插件目标多次执行的问题,这与使用并行构建选项(如mvn plugin:goal -T 4. 这导致重复执行阶段。这已通过MNG-5965修复。

  • 与MNG-5705等并行构建调用相关的 NullPointerExceptionmvn -T 1C clean javadoc:aggregate

  • 已发现与WAGON-537相关的与工件转移相关的性能问题。它已通过更新Maven Wagon 3.3.1得到解决。

  • 像这样调用 Maven 脚本时出现了问题:mvn -f ..

    • 路径中有括号,已使用MNG-6346修复。
    • 脚本可能会破坏将特殊字符作为路径的一部分,这已通过MNG-6256解决。
  • 与破坏某些 IDE 的 Maven Resolver API 相关的问题(例如https://youtrack.jetbrains.com/issue/IDEA-201282);这已由MNG-6538修复。

  • 与 EventSpy MNG-6558上 ToolchainsBuildingResult 缺少事件相关的问题。

  • 与 Mojos 中支持 Java 9+ 相关的问题ClassLoader.findClass(String moduleName, String name)。这已通过MNG-6543修复。

  • 已使用MNG-6571改进了内存消耗。

  • 与复杂多模块构建的 3.5.0 中的相对父 POM 分辨率相关的问题已通过MNG-6261修复。

  • org.slf4j.event.Level 缺少导出已使用MNG-6618完成

用户可见更改

  • Maven 现在有一个选项可以在交互模式下下载/上传时抑制传输进度。
mvn --no-transfer-progress ....

或简而言之:

mvn -ntp ... ....
  • 有一个问题,如MNG-6505MNG-6059与 URL 等的构建有关projectdistributionManagement并且scm在 pom 中进行多模块构建,如下所示:
<project child.project.url.inherit.append.path="false">
  <url>...</url>

  <scm child.scm.connection.inherit.append.path="false"
       child.scm.developerConnection.inherit.append.path="false"
       child.scm.url.inherit.append.path="false">
    <connection>...</connection>
    <developerConnection>...</developerConnection>
    <url>...</url>
  </scm>

  <distributionManagement>
    <site child.site.url.inherit.append.path="false">
      <url>...</url>
    </site>
  </distributionManagement>
</project>

详细解释可以在Inheritance AssemblyMNG-6059中找到

详细问题清单

错误:

  • MNG-5705 - 在 BuilderCommon.handleBuildError(BuilderCommon.java:147) 中并行构建的 NPE
  • MNG-5965 - 如果给定多个目标,则并行构建倍增工作
  • MNG-5995 - Maven 本身无法在没有 maven-compat 的情况下运行
  • MNG-6256 - 如果“-f”路径包含特殊字符,Maven 脚本可能会中断
  • MNG-6261 - 3.5.0 中的相对父 POM 解析失败,具有复杂的多模块构建
  • MNG-6262 - 在项目解析期间,getCanonicalFile() 的使用不一致
  • MNG-6346 - ...此时使用 -f 选项且路径包含括号时出乎意料
  • MNG-6374 - 模型构建器因 pom.xml 格式错误而挂起
  • MNG-6429 - 集成测试站点发布需要 Java 7(或忽略 javadoc 错误)
  • MNG-6495 - ModelResolver 不能为空
  • MNG-6505 - child.(xy).inherit.append.path 值应该被继承
  • MNG-6506 - Mojos 无法在 Java >= 9 上加载包注释
  • MNG-6529 -ProjectBuilder.build(List<File> projects, boolean, ProjectBuildingRequest)不尊重ProjectBuildingRequest.isResolveDependencies()
  • MNG-6530 - 调用之间文件更改时 ProjectBuilder 中的回归(由 MNG-6311 引入)
  • MNG-6533 -ProjectBuilder.build(list_of_projects,...)异常报告中不包含 MavenProject
  • MNG-6543 - 升级 plexus classworld 以支持 MojosClassLoader.findClass(String moduleName, String name)中的 java 9+
  • MNG-6558 - 未在 EventSpy 上发送 ToolchainsBuildingResult 事件
  • MNG-6577 - pom.xml:解析 unicode 实体引用时未捕获 IllegalArgumentException
  • MNG-6590 - DefaultProjectArtifactsCache java.lang.IllegalStateException:重复的工件解析结果
  • MNG-6599 - 当版本是从父级定义时,模型 ID 中的未知版本

改进

  • MNG-6059 - 未涵盖重要用例,因为 child.inherit.append.path 影响所有子级
  • MNG-6159 - 子路径调整中断 git scm url
  • MNG-6213 - Maven 不检查范围值的有效性
  • MNG-6481 - 允许使用 Java 11 编译和测试 Maven
  • MNG-6513 - 用 IT 中的注释替换过时的 Plexus javadoc 标签
  • MNG-6515 - 修复 Java 8 和 11 下的 javadoc 构建错误
  • MNG-6520 - 将程序集描述符更新为 2.0.0
  • MNG-6522 - 准备 Maven 的核心集成测试套件以使用 Java 12 和 13-ea 进行测试
  • MNG-6572 - 对 ComparableVersion 中的小数字使用 int 或 long 而不是 BigIntegers
  • MNG-6593 - 超级 pom 的跟踪输入位置
  • MNG-6597 - 为插件配置添加输入位置跟踪
  • MNG-6600 - 为默认生命周期绑定执行添加输入位置跟踪
  • MNG-6601 - 为报告转换注入的站点报告插件添加输入位置跟踪
  • MNG-6605 - 允许在交互模式下禁止下载消息
  • MNG-6611 - 将 animal-sniffer-maven-plugin 更新到 1.17

希望

任务

  • MNG-6538 - 将 Maven Artifact Resolver 升级到 1.3.3 以恢复 API
  • MNG-6544 - 将 CacheUtils#{eq,hash} 替换为对象
  • MNG-6573 - 使用最新的 Maven 3.6.0 通过 ASF CI 构建 Maven 核心和插件
  • MNG-6618 - Maven 不导出 org.slf4j.event.Level

依赖升级

  • MNG-6526 - 升级到 Wagon 3.3.1(从 3.2.0)
  • MNG-6591 - 升级到 Wagon 3.3.2

完整的变更列表可以在我们的问题管理系统中找到。

完整的发行说明

查看所有版本的完整发行说明