Gradle 7.3 发布,支持 Java 17 和 Scala 3

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Gradle 7.3 版本为 JVM 项目引入了声明性测试套件 API,添加了对使用 Java 17 构建项目的支持,并更新了 Scala 插件以支持 Scala 3。 Gradle 7.3 具体更新内容如下: 升级说明 通过更新你的 Wrapper,将你的构建转...

Gradle 7.3 版本为 JVM 项目引入了声明性测试套件 API,添加了对使用 Java 17 构建项目的支持,并更新了 Scala 插件以支持 Scala 3。

Gradle 7.3 具体更新内容如下:

升级说明

通过更新你的 Wrapper,将你的构建转换为使用 Gradle 7.3。

./gradlew wrapper --gradle-version=7.3

新功能和可用性改进

  • 支持 Java 17

    Gradle 现在支持在 Java 17 上运行和构建。在以前的 Gradle 版本中,在 Java 17 上运行 Gradle 会导致一个错误。从 Gradle 7.3 开始,运行 Gradle 本身和用 Java 17 构建 JVM 项目都被完全支持。

  • JVM 项目中的声明性测试套件

    在测试 Java 和 JVM 项目时,开发者经常需要将测试类分组,将它们组织成可管理的块,这样就可以以不同的频率或在构建管道的不同点上运行它们。

    以前,正确的测试分组需要彻底了解如何修改和连接 Gradle 中的各种领域对象,如 SourceSets、配置和任务。如果你想把测试分成不同的组,你需要了解这些独立的部分如何相互作用。

    在 Gradle 7.3 中,JVM Test Suite Plugin 简化了这种测试组的创建。

  • 支持 Scala 3

    Scala 插件允许用户使用 Gradle 和 Zinc 增量编译器来编译他们的 Scala 代码。Scala 插件现在可以编译 Scala 3 的代码了。所有现有的配置选项在最新的语言版本下仍然可以使用。

    最新版本的 Scala 3 在保持与大部分现有 Scala 2 代码兼容的同时,也带来了众多功能。

  • 探索 gradle init 的新行为

    当你使用 gradle init 初始化一个新的 Gradle 项目时,Gradle 现在会询问你是否想在构建中尝试新的但不稳定的功能。开发者可以在生成新项目时,通过运行 gradle init --incubating 来询问这一行为。

    目前,用这个选项生成的构建只启用 Test Suites,但其他新的 API 或行为可能会在它们引入时被添加。

  • 取消了对别名(alias)的限制

    在以前的 Gradle 版本中,不可能用后缀 pluginversion和其他受限制的关键字来声明别名。在这个 7.3 版本中,这些限制现在被取消了。

可靠性改进

  • 更强大的文件系统观察

    当运行增量构建时,Gradle 需要了解自上一次构建以来文件系统上有什么变化。为了做到这一点,它尽可能地依赖操作系统的文件系统事件。

    在一些罕见的环境中,这些事件可能不够可靠,并且会导致 Gradle 忽略一些变化。为了防止这种情况,Gradle 现在在启用基于文件系统事件的优化之前,会验证文件系统事件是否及时交付。

  • 允许将单个文件复制到包含不可读文件的目录中

    现在可以在 Copy任务上使用 Task.doNotTrackState()方法,强制 Gradle 忽略目标目录中的内容。

  • 配置缓存中的输入规范化支持

    输入规范化现在能被实验性配置缓存正确跟踪。当配置缓存启用时,任务的最新检查现在会考虑规范化规则,从而产生更快的构建。

  • 插件开发改进

    使用 Build Init 插件初始化新的插件项目也可以从 --incubating选项中受益。

Tooling 改进

  • 文件下载进度事件

    当构建下载许多文件或非常大的文件时(例如在解决依赖关系时),由于缺乏任何日志或控制台输出,Gradle 可能会被认为出现了无响应。

    7.3 版本增加了新的事件,在文件被下载时通知 IDE。这允许 IDE 在 Gradle 运行时和 IDE 导入/同步时显示更好的进度信息。

  • 安全性改进

    antcommon-compress 捆绑库都已更新,以解决报告的漏洞。

修复的问题

  • [#18632] - Test Suite 无法添加版本目录项目
  • [#18622] - KMP 中找不到名称为 'test' 的 SourceSet
  • [#18598] - 修复小的 JvmTestSuitePlugin 文档格式问题
  • [#9095] - 为任务完全禁用缓存和最新检查
  • [#18324] - gradle 依赖于一个不安全的第三方 JAR 包,其中包含 CVE 漏洞
  • [#18239] - 支持 TestNG 和 Spock 作为测试框架选项
  • ……

更多详情可查看:https://docs.gradle.org/7.3/release-notes.html


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解计算机系统

深入理解计算机系统

Randal E.Bryant、David O'Hallaron / 龚奕利、雷迎春 / 中国电力出版社 / 2004-5-1 / 85.00元

从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有......一起来看看 《深入理解计算机系统》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具