Gradle 8.6 发布

Gradle 8.6现已发布。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具,支持依赖管理和多项目,类似Maven,但比之简单轻便。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

此版本支持配置缓存的自定义加密密钥,对 build init 进行了多项改进,并更新了 build authoring API。还为 IDE integrators 提供了更多有用的错误和警告信息以及新的 API。

配置缓存通过缓存配置阶段的结果并将其重用于后续构建来缩短构建时间。此功能可以显着提高构建性能。

自定义加密密钥

配置缓存经过加密,可降低敏感数据意外泄露的风险。默认情况下,Gradle 会自动创建并管理密钥,并将其存储在 Gradle 用户主目录的密钥库中。这样做虽然方便,但在某些环境下可能并不合适。

现在用户可以向 Gradle 提供用于通过GRADLE_ENCRYPTION_KEY环境变量加密缓存配置数据的密钥。更多详细信息查看 Gradle 用户手册的配置缓存部分。

build init 插件允许用户轻松创建新的 Gradle 构建,支持各种类型的项目。

Simpler source package handling

你不再需要回答有关源包的交互式问题。取而代之的是使用org.example的默认值。你可以使用init任务的现有选项–packageflag 来覆盖它。此外,还可以通过在 Gradle 用户主页的gradle.properties中添加org.gradle.buildinit.source.package新属性来设置默认值。

生成的 convention plugins 的名称现在以buildlogic开头,而不是软件包名称,从而使名称更简短、更整洁。

Generating without interactive questions

新增的 –use-defaults 选项可为未明确配置的选项应用默认值。它还能确保 init 命令在没有交互式用户输入的情况下完成。这在 shell 脚本中非常方便,可确保脚本不会意外挂起。

例如,你可以在不回答任何问题的情况下生成 Kotlin 库:

Simpler assignment syntax in Kotlin DSL

示例:

Gradle 为插件作者和构建工程师提供了丰富的 API 来开发自定义构建逻辑。如果执行构建不需要任务,则任务配置避免 API 会避免配置任务。

Lazy name-based filtering of tasks

示例:

Allow Providers to be used with dependency capabilities

Gradle 支持声明组件的功能,以便允许 Gradle 在构建时检测和解决依赖项之间的冲突,从而更好地管理依赖项。

Gradle 提供了一组丰富的错误和警告消息来帮助用户理解和解决构建中的问题。

出现依赖锁定错误时更清晰的建议操作

此版本通过将错误与可能的操作分开以修复控制台输出中的问题,改进了依赖锁定中的错误消息。启用 strict mode 时,由于锁定文件格式无效或缺少锁定状态而导致的错误现在显示如下:

更好地报告 providers 中的循环引用的错误

Gradle 使用 Tooling API集成到许多 IDE 中。

此外,Gradle 8.6 中还修复了 86 个issue。更多详情可查看官方公告。

未经允许不得转载:岩猫星空网 » Gradle 8.6 发布