Gradle 7.0 现已发布。Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具,支持依赖管理和多项目,类似 Maven,但比之简单轻便。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的 XML。
该版本默认启用文件系统监视功能,使你的增量构建速度更快;扩展了对使用 Java 16 构建项目的支持;并增加了对在使用 Apple Silicon 处理器(如 M1)的 Mac 上构建的支持。
同时,此版本还引入了 centralized dependency versions 的功能预览,启用构建验证错误,使你的构建更加可靠,并使其更容易为设置文件创建 convention plugins。且许多孵化中的功能已经晋升为稳定版。具体更新内容如下:
性能提升
更快的增量构建
文件系统监视是 Gradle 6.5 中的一项可选功能,在 Gradle 6.7 中被标记为生产就绪。 当启用时,Gradle 会在两次构建之间将它所了解到的文件系统保存在内存中,并在每次构建时跳过从文件系统中读取。这大大减少了确定自上一次构建以来发生了什么变化所需的磁盘 I/O 量。
现在,在所有支持的平台上,包括最新版本的 Windows、Linux 和 MacOS,都默认启用了这项优化。有关更多详细信息,可参见文档。
Android 项目中更快的增量更改
此版本包含了对 Android 项目中增量更改的性能改进,特别是那些使用 Jettifier 的项目。例如,与 Gradle 6.8 相比,Santa Tracker Android 项目中的 non-ABI 更改的 assembleDebug 提高了 12%:
忽略空 buildSrc 项目
Gradle 现在将忽略一个空的 buildSrc 目录,只有在检测到构建文件和/或源文件时才会生成一个 buildSrc.jar。当检测到一个空的 buildSrc 目录时,有两个好处:
- :buildSrc:* 任务将不会被不必要地执行。
- 空的 buildSrc.jar 不会被添加到 buildcript class path 中,避免了可能造成的 cache misses。
新功能和可用性改进
- 对 Apple Silicon 的原生支持
- 支持 Java 16
- Centralized dependency versions
- 类型安全的 project accessors
- Groovy 3 升级
- Dependency locking 改进
- 在 plugins block 中使用 dynamic 版本
更多详情可查看更新说明:https://docs.gradle.org/7.0/release-notes.html
注意:本文归作者所有,未经作者允许,不得转载