发行说明 – Maven 3.5.0-beta-1

Apache Maven 团队宣布发布 Maven 3.5.0-beta-1。

Maven 3.5.0-beta-1可供下载

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

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

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

已知的问题

在此BETA版本的发布测试期间发现了以下问题,但未将其视为发布阻止程序:

  • MNG-6190 maven-resolver-provider 的DefaultArtifactDescriptorReader构造函数和 initService 方法不匹配(此问题不影响 Maven 的正常使用)
  • MNG-6191 mvn -f抱怨readlinkmacOS 下的非法选项
  • MNG-6192分发 zip 文件具有无序条目,并且某些工具 - 最显着的是 Maven 包装器 - 将无法解压缩分发

为什么不是 Maven 3.4.0?

Maven 3.3.9 发布后,Eclipse Aether 项目退役,代码库迁移到 Apache Maven 项目。

3.4.0 版本的最初目标是在迁移到 Apache Maven 项目后用完全相同的代码替换 Aether,然后继续对解析器代码以及 Maven 的其他区域进行错误修复。

两个基础之间的代码迁移花费的时间比预期的要长,因此提交给 Maven 核心的其他更改超出了 3.4.0 的意图范围。

为了重新关注 3.4.0 的原始意图,决定将 Maven 核心历史恢复到 3.3.9 版本的点,并一次合并一个所需的更改。

因为已经有很多关于 Maven 3.4.0 中交付的不同特性和修复的错误的沟通,并且新的历史可能不会在第一个版本中包含它们,所以决定永远烧毁 3.4.x 版本线。

可以在邮件列表存档中阅读有关此决定的更多详细信息。

本新闻稿的记者和贡献者

错误:

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

初步测试人员

也感谢您的时间和反馈。

有关更改的概述

  • 您可能遇到的最明显的变化是控制台输出现在具有颜色MNG-3507MNG-6093

  • 新的特殊属性在每个计算的 URL(项目、SCM、站点)中添加了对与 artifactId MNG-5878project.directory不匹配的模块目录名称的支持

  • JAVA_HOME发现已简化为简单地检查是否已设置然后JAVA_HOME尝试通过which javaMNG -6003进行发现。

  • 通过 Apache Ant 的构建引导支持已被删除。您现在只能使用以前版本的 Maven 引导 Maven 构建,但不能再使用 Ant MNG-5904

  • 基于M2_HOME与安装的不同 Maven 版本相关的使用问题并为简化操作,M2_HOME已删除并不再支持MNG-5823MNG-5836MNG-5607 的使用

  • Windows 用户的重要更改: 的用法%HOME%已替换为%USERPROFILE% MNG-6001

  • 已报告并修复了与mvnUnix/Linux/Cygwin/Solaris 或 Windows MNG-5815MNG-5852MNG-5963MNG-6022的脚本相关的几个问题。

  • 在 Maven 3.3.9 中,我们删除了 maven-ejb3-plugin 的绑定,因为它不存在。我们跟进并删除了MNG-6014ejb3MNG-6017par生命周期的工件处理程序。

  • 在以前的 Maven 版本中,在非常大的反应器(200-300 个模块或更多)的情况下,存在与内存使用相关的更大问题,这会导致内存不足异常或需要增加内存设置的故障。此问题已通过MNG-6030修复。

  • 如果您在.mvn/maven.config文件中定义了属性,则无法通过命令行覆盖该属性。这已通过MNG-6078修复。

  • 如果您使用<prerequisites>..</prerequisites>的是非 maven-plugin 项目,您将收到如下所示的警告:

[INFO] Scanning for projects...
[WARNING] The project org.apache.maven:maven:pom:3.5.0-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html

这将告诉您使用 maven-enforcer-plugin 来检查您希望构建项目的 Maven 版本,而不是使用prerequisites MNG-5297MNG-6092

改进:

错误:

  • MNG-5895 - 已通过 pom 文件中的属性定义的 ${..} 的 CI 友好使用问题。
  • MNG-6057 - CI 友好使用 ${..} 反应器顺序的问题已更改
  • MNG-6090 - CI 友好属性中断子模块构建
  • MNG-6170 - NPE 在使用多线程 -TX 版本的情况下:设置 -DnewVersion=1.0-SNAPSHOT
  • MNG-6173 - MavenSession.getAllProjects() 应该返回反应堆中的所有项目
  • MNG-6176 - Javadoc 错误阻止了 Java 8 的发布
  • MNG-6177 - Windows 和 Unix 启动器的 –file 命令行选项不适用于“空格和特殊字符”等目录名称
  • MNG-6180 - 目标失败时 groupId 具有纯色
  • MNG-6181 - HttpClient 在调试日志级别产生大量噪音
  • MNG-6183 - 依赖管理调试消息更正。

改进:

  • MNG-6078 - 无法覆盖已在 .mvn/maven.config 中定义的属性
  • MNG-6115 - 将 Jansi 本机库搜索路径添加到我们的启动脚本中,以避免在每次运行时提取到临时文件
  • MNG-6179 - 删除未使用的先决条件
  • MNG-6189 - 如果 maven-site-plugin 配置包含 reportPlugins 元素,则发出警告

新功能:

  • MNG-6182 - ModelResolver 接口增强:添加了 resolveModel( Dependency ) 支持版本范围

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

完整的发行说明

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