Gradle Release Notes

Version 6.4.1

Gradle团队很高兴宣布Gradle 6.4.1.

此版本具有对构建和测试Java模块的高度期望的支持,为更好地构建逻辑组织而进行预编译的Groovy DSL脚本插件 ,以及每个项目一个锁定文件,从而减少了使用依赖项锁定的项目中的锁定文件.

还有其他一些改进和错误修复 .

我们要感谢此Gradle版本的以下社区贡献者:

Roberto Perez AlcoleaSheliakLyrJames BaieraPatrick KoenigMatthew DugganDavidBurströmNelson OsackySebastian SchuberthIsmael JumaSteve VermeulenVictor TuranskyLars Kaulen .

Table Of Contents

Upgrade instructions

通过更新包装器将构建切换为使用Gradle 6.4.1:

./gradlew wrapper --gradle-version=6.4.1

请参阅Gradle 6.x升级指南以了解有关升级到Gradle 6.4.1时的弃用,重大更改和其他注意事项的信息.

注意:Gradle 6.4拥有一个修补程序版本,它修复了原始版本中的多个问题. 我们建议始终使用最新的修补程序版本.

有关Java,Groovy,Kotlin和Android的兼容性,请参阅完整的兼容性说明 .

Building, testing and running Java Modules

在此版本中,Gradle支持Java模块系统,它具有编译和执行Java模块测试所需的一切. 您还可以构建Javadoc并运行应用程序.

虽然Gradle的依赖性管理功能有些重叠,但是Java模块提供了其他功能,例如Java运行时强制执行的模块边界.

您唯一需要配置的是Java插件的模块路径推断

java {
    modularity.inferModulePath.set(true)
}

然后,您只需通过提供module-info.java描述符作为源代码的一部分来确保编写了正确的Java模块:

src
└── main
    └── java
        └── module-info.java

有关更多详细信息,请转到有关构建模块构建模块化应用程序测试模块的文档.

也可以随意探索样品 .

Precompiled Groovy DSL script plugins

脚本插件是拆分和组织长构建脚本的便捷方法,但是它们有一些局限性和怪异之处. Kotlin DSL引入了预编译的脚本插件,这些插件看起来像常规的构建脚本,但具有二进制插件的所有优点. 他们能:

Gradle现在允许除Kotlin DSL外,还使用Groovy DSL编写预编译的脚本插件.

例如, buildSrc/src/main/groovy/my-plugin.gradle的Gradle脚本可用作plugins { id 'my-plugin' } buildSrc/src/main/groovy/my-plugin.gradle plugins { id 'my-plugin' }在主项目中的plugins { id 'my-plugin' } .

Precompiled script plugins are covered in more depth in the user manual. There is also a sample available that demonstrates the feature in action.

Single dependency lock file per project

依赖锁定是一种即使使用动态依赖版本也可以创建可复制构建的机制. 此版本增加了一种改进的依赖项锁定文件格式,可在使用此功能的大多数项目中减少锁定文件的数量. 此外,使用此格式时, 可以配置锁定文件名和位置.

该格式将成为Gradle 7.0中的默认锁定文件格式. 目前,需要选择使用它.

请查看文档以获取更多信息以及如何启用该功能.

Better dependency variant matching error messages

Gradle提供了功能强大的变体感知依赖管理引擎.

此版本引入了针对JVM生态系统的更清晰的变量匹配错误消息.

在以前的版本中,这些错误消息可能很难理解,有时缺乏足够的上下文来确定要做什么. Gradle 6.4通过使这些错误消息更易于理解并向控制台引入颜色来突出显示问题,从而改进了这些错误消息.

Improvements to PMD code quality plugin

Incremental analysis is enabled by default

从Gradle 6.4开始, PMD插件默认使用增量分析 . 这样可以大大减少后续构建的分析时间.

对于依赖于6.0.0之前的PMD版本的构建,您将需要显式禁用增量分析 .

Specify number of violations required before the build fails

PMD插件现在允许您设置构建失败之前的违规次数. 这样可以更轻松地将PMD引入可能最初存在许多违规行为的现有项目中.

如果您希望在违反次数大于150的情况下使构建失败,则可以将maxFailures设置为150.

pmd {
    maxFailures = 150
}

这是由Matthew Duggan贡献的.

Security warning about using DEBUG level logging

当使用调试级别日志记录执行Gradle时,会记录潜在的敏感信息,例如敏感的凭据,身份验证令牌或内部存储库URL. 这种日志记录大部分发生在Gradle控制范围之外的JVM和其他库的组件中. 在调试时,此信息可能会固有地有用. 但是,在可公开访问构建日志的Continuous Integration服务上执行Gradle构建时,可能会无意间公开此信息. 有关此安全风险的示例,请参阅有关已修复的Plugin Portal漏洞的最新更新.

Gradle现在警告用户使用DEBUG级别日志记录的风险.

我们建议插件维护者避免记录敏感信息(如果可能),并且如果不可能的话,所有敏感信息都应排在DEBUG日志级别.

Fixed issues

Known issues

已知问题是在发行后发现的与该发行版中的更改直接相关的问题.

External contributions

我们喜欢从Gradle社区获得捐助. 有关贡献的信息,请访问gradle.org/contribute .

Reporting problems

如果您发现此发行版有问题,请遵循我们的发行准则在GitHub Issues上提交错误. 如果您不确定遇到错误,请使用论坛 .

我们希望您能通过Gradle建立幸福,并且期待您通过TwitterGitHub的反馈.

by  ICOPY.SITE