Gradle-7.0.2 发布

Gradle团队很兴奋地宣布一个新的主要版本的Gradle,7.0。

此版本支持默认情况下文件系统监视为了使您的增量构建更快,扩展了对用Java 16构建项目,并增加了对基于使用苹果硅处理器(如M1)的MAC电脑.

此版本还引入了的功能预览集中式依赖版本,启用构建验证错误使您的构建更加可靠,并且更容易为设置文件创建约定插件。许多孵化功能已被提升为稳定.

这些发行说明仅列出了自Gradle 6.8以来的新增内容。您还可以看到Gradle 6.0到7.0之间所有变化的亮点.

下载连接:点击进入快速下载

新功能和可用性改进

苹果芯片的原生支持

以前的Gradle版本可以在苹果硅处理器的新MAC上运行,但有一些缺点:

  • 与一个原生的手臂JDK,格雷尔的特点一样丰富的控制台和文件系统监视会被禁用。
  • 有了英特尔JDK,Gradle在Rosetta2兼容层上的运行速度只有一半。

在此版本中,现在使用原生ARM JDK支持所有功能。如果你使用苹果芯片的新Mac,你应该使用Gradle和原生ARM JDK以获得最佳性能。

支持Java 16

Gradle现在支持在上运行并使用Java 16.

在以前的Gradle版本中,在Java 16上运行Gradle本身会导致错误。JVM项目可以使用Java 16构建工具链但是只能禁用增量编译。

从Gradle 7.0开始,无论是运行Gradle本身,还是用Java 16构建JVM项目,都是完全支持的。

集中式依赖版本

在多项目构建中,有多种方法可以在项目之间共享依赖项版本。例如,用户可以直接在构建脚本(在ext块)、外部文件(例如dependencies.gradle),在buildSrc甚至是专用插件。然而,什么也没有标准这种机制将结合每种方法的优点。

在此版本中,Gradle引入了版本目录作为一个实验特征。版本目录使构建作者能够将他们的第三方依赖项的依赖项坐标(组、工件、版本)集中在一个常规的配置文件中,并以类型安全的方式声明实际的依赖项。

为了启用这个实验特性,在您的settings.gradle(.kts)文件:

enableFeaturePreview("VERSION_CATALOGS")

然后,您可以使用gradle/libs.versions.toml文件来声明目录内容:

[versions]
groovy = "3.0.5"[libraries]
groovy-core = { module = "org.codehaus.groovy:groovy",version.ref = "groovy" }
groovy-json = { module = "org.codehaus.groovy:groovy-json",version.ref = "groovy" }
groovy-nio = { module = "org.codehaus.groovy:groovy-nio",version.ref = "groovy" }
commons-lang3 = { group = "org.apache.commons",name = "commons-lang3",version = { strictly = "[3.8,4.0[", prefer="3.9" } }[bundles]
groovy = ["groovy-core", "groovy-json", "groovy-nio"]

之后,在任何子项目的任何构建脚本中,您可以使用类型安全的访问器来声明依赖项:

dependencies {implementation libs.bundles.groovyimplementation libs.commons.lang3
}

以这种方式声明依赖关系允许在所有模块中容易地重用依赖关系坐标,在ide中提供内容帮助,并降低输入错误的风险。更重要的是,它还提供了在升级库时更改版本的单一位置。

此外,经常一起使用的依赖项可以组织成包,并在相关项目中用一行代码声明。目录也可以在不同的构建之间共享。

对于插件作者或更高级的用例,可以从Settings声明版本目录。

注意

该特性旨在集中声明,对依赖关系解析过程没有影响。这意味着已解析的版本仍然可以不同于版本目录中声明的版本。例如,如果可传递依赖项需要更高的版本,则依赖项的解析版本可以高于目录中声明的版本。

涉及文档了解更多详情。

类型安全的项目访问器

在Gradle 7.0之前,在多项目构建中声明项目间依赖关系的唯一方式是使用字符串表示法,例如project(“:some:path”).

这个版本的Gradle为项目访问器增加了一个实验性的特性,它提供了类型安全并支持ide中的代码完成。

为了启用这个实验特性,请将这一行添加到您的settings.gradle(.kts)文件:

enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

带有路径的项目:client将可以使用以下符号进行访问:

dependencies {// type-safe alternative to project(":client")implementation projects.client
}

具有更多嵌套层次的项目,如:commons:utils:numbers将可以使用以下符号进行访问:

dependencies {// type-safe alternative to project(":commons:utils:numbers")implementation projects.commons.utils.numbers
}

请参考证明文件了解更多详情。

Groovy 3升级

为了支持JDK 16并与最新的Groovy版本保持同步,Gradle已经升级到在Groovy DSL构建脚本中使用Groovy 3。Groovy 3附带了一个新的解析器和许多其他新特性和功能,使得与新Java特性的互操作性变得更加容易。

Groovy 2和3之间存在一些不兼容性,这可能会导致升级到Gradle 7.0时出现问题。

在以下情况下,您可能会受到Groovy升级的影响:

  • 您将Groovy DSL用于您的构建脚本(.gradle文件)
  • 您正在使用Groovy中实现的Gradle插件
  • 您正在构建一个用Groovy实现的Gradle插件

在以下情况下,您不会受到升级的影响:

  • 您只使用Kotlin DSL(.gradle.kts文件)
  • 您仅将Groovy用于您的生产代码(您可以选择您需要的Groovy版本)

请参考Gradle升级指南了解更多关于升级构建和插件以兼容Groovy 3的信息。

为了了解更多关于Groovy 3.0中的改进和新特性,请参考Groovy项目的发行说明.

依赖性锁定改进

依赖性锁定是一种在使用动态依赖版本时确保可重现构建的机制。

该版本默认为改进的依赖锁定文件格式这导致使用该特性的大多数项目中的锁文件较少。具体来说,它导致每个项目一个文件,而不是每个项目每个配置一个文件。

Gradle将自动清理以前的锁文件,当迁移它们转换到新的文件格式。

此外,当使用新格式时,可以配置锁定文件名和位置。

在插件块中使用动态版本

直到现在plugins { }block仅支持社区插件的固定版本。全部Gradle支持的版本字符串表示法现已被接受,包括+或者latest.release.

我们建议使用plugins {}使用Gradle 7应用插件的块。老人apply plugin:机制将来会被弃用。

请注意,动态版本会在您的构建过程中引入不确定的行为,应该谨慎使用。你可以用依赖性锁定保存使用动态版本时解析的依赖项集。

gradle-7.0.2-all 百度网盘下载相关推荐

  1. MacPorts下载很慢的看过来,MacPorts V2.8.0 For Mac百度网盘分享

    MacPorts下载很慢的看过来,MacPorts V2.8.0 For Mac百度网盘分享 链接: https://pan.baidu.com/s/124oYsmGtmgvY4vBwrGAHaA 提 ...

  2. 最新版SIM卡管理工具MAGICSIM V25.0(新版多功能SIM卡读卡软件) 百度网盘下载地址

    [基本介绍] 最新SIM卡管理工具MAGICSIM  1.可对SIM卡电话薄进行备份及编辑: 2.可对SIM卡短信进行备份及编辑: 3.可对SIM卡PIN码进行管理:开启.禁用或修改PIN码: 4.可 ...

  3. 百度网盘php文件怎么打开,如何通过网页版百度网盘下载大文件

    最近老张需要在百度网盘下载一个较大的文件,结果他要我必须下载客户端才行, 此背景下,在网站找了各种办法,什么模拟手机,F12查看下载链接都不行,最后找到了可行的办法. 步骤如下: 一:如果是别人分享的 ...

  4. prescan8.5 百度网盘下载链接及安装过程

    prescan8.5 安装教程 含百度网盘下载链接 下载地址: 链接 安装过程: 1.下载软件安装包后双击打开-\PreScan8.5\aTsitePreSc850\TASS.Internationa ...

  5. 使用百度网盘下载ed2k文件

    网页版的百度网盘有一个低调而强大的功能---离线下载. 一般下载大型文件,我推荐"离线下载",比如下载一个约615M的ed2k文件,如果用迅雷的话,要估计半个小时:而用百度网盘的& ...

  6. 千方百计获取百度网盘下载链接

    千方百计获取百度网盘下载链接 重要的事情说三遍: 高手勿喷! 高手勿喷! 高手勿喷! 以前看过一篇帖子是在手机上获取百度云的下载链接然后在发送到电脑上, 这样的话百度云后台会判定为两次请求, 请求同一 ...

  7. su组件在什么窗口_su建筑模型库14套中式石头栏杆草图大师模型栏杆su模型百度网盘下载...

    SU模型是什么? su是草图大师SketchUp的简写,也是一款3维制作软件,不过应用范围没有3D广泛,3D的优点是制作的效果图可以达到照片级效果,而SU的制作效果是模型级的,SU的优点是建模型的时候 ...

  8. 基于STM32F103C8T6四路AD采集数据显示在oled屏上非DMA传输方式(附百度网盘下载链接)

    本文采用四路AD采集光照强度.烟雾浓度.一氧化碳.空气质量等四个物理量,并采用中位值平均滤波(防脉冲干扰平均滤波法)算法对偶然出现的脉冲性干扰,消除由其引起的采样值偏差. ADC简介 STM32F10 ...

  9. Chrome插件baiduexporter+aria2百度网盘下载

    Chrome插件baiduexporter+aria2百度网盘下载 这篇博客主要为了解决百度网盘下载限速以及linux等操作系统无百度客户端的问题.主要包括两个方面第一个是aria2的安装,aria2 ...

  10. 怎样用百度网盘下载mysql_使用百度网盘下载ed2k文件

    网页版的百度网盘有一个低调而强大的功能---离线下载. 一般下载大型文件,我推荐"离线下载",比如下载一个约615M的ed2k文件,如果用迅雷的话,要估计半个小时:而用百度网盘的& ...

最新文章

  1. IIS上配置运行cgi,php,aspx运行环境
  2. 训练日志 2019.4.17
  3. 51 nod 1006 最长公共子序列Lcs
  4. 326 Power of Three 3的幂
  5. 羡慕写字漂亮的人,怎么样练字?
  6. Sql根据身份证计算年龄和时间范围的条件查询
  7. 风行电视账号服务器链接失败,腾讯对战平台连接版本服务器失败的解决方法
  8. 船舶导航软件测试,北斗卫星船舶定位及信息通信应用
  9. 上上下下左右左右BABA - 那些80后最难忘的游戏
  10. 思考的救赎(一):三消游戏实现探索
  11. 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作
  12. FTP服务器文件的批量下载
  13. Mybatis-plus学习-最全细致讲解
  14. 【年终总结系列 2021】不变的心态应对变化的环境
  15. 每日一题·648.单词替换·前缀树
  16. 电脑右下角的WiFi图标不见如何处理
  17. 进制基础:详解二进制、八进制和十六进制
  18. Jmeter运行后,查看结果树中的响应数据出现中文乱码。
  19. 2020酒店互动电视IPTV系统七种解决方案
  20. UI设计师的职业规划

热门文章

  1. 力推刷脸社交产品“Real如我” 阿里的社交梦靠谱吗?
  2. [转] Notepad++一些好用的特性
  3. 香港科大三位校友登上2020《福布斯》亚洲30岁以下精英榜
  4. 如何给DropDownListFor设置默认值
  5. java 重写compareTo方法实现类自定义排序
  6. 2022 2.8-2.11学习笔记
  7. php五子棋胜负,五子棋入门:一局棋的胜负与和棋
  8. 运行中调试初计算机的命令,计算机二级 VB辅导:VB中程序的运行调试
  9. 工厂航拍全景车间VR全景线上展厅应用
  10. 小红书达人推广价格是怎样的?