Gradle团队很高兴宣布Gradle 7.0的新主要版本。
默认情况下,此版本使文件系统监视能够使您的增量构建速度更快,扩展了对使用Java 16构建项目的支持,并增加了对使用Apple Silicon处理器(例如M1)在Mac上进行构建的支持。
此版本还引入了针对集中式依赖项版本的功能预览,允许生成验证错误以使您的生成更加可靠,并使创建设置文件的约定插件更加容易。许多孵化功能已提升为稳定状态。
这些发行说明仅列出了自Gradle 6.8以来的新功能。您还可以看到Gradle 6.0到7.0之间所有更改的亮点。
我们要感谢以下社区成员为此次Gradle版本所做的贡献:
马修·霍顿,莱昂Linhart,塞巴斯蒂安Schuberth,Aidar Nugmanoff,马丁d’Anjou酒店的,直到Krullmann,安德烈亚斯·克斯尔松,佩德罗托雷斯,斯特凡OEHME,杰夫,刘若英Groeschke,尼尔斯·杜塞,托比亚斯赫尔曼,Rishaba,耆那教,杰罗姆Dochez,维塔利Polonetsky,安藤直树(Naoki Ando),斯托尔·翁德海姆(StåleUndheim)。
目录
升级说明
性能提升
新功能和可用性改进
建立可靠性改进
依赖管理的改进
插件开发改进
安全公告
升级功能
已解决的问题
已知的问题
外部捐款
报告问题
升级说明
通过更新包装器将构建切换为使用Gradle 7.0:
./gradlew wrapper –gradle-version=7.0
请参阅Gradle升级指南以了解有关升级到Gradle 7.0时的弃用,重大更改和其他注意事项的信息。
有关Java,Groovy,Kotlin和Android的兼容性,请参阅完整的兼容性说明。
性能提升
此版本包含针对增量开发的进一步改进,这是您经常进行小的更改的软件开发过程的一部分。
更快的增量构建
在增量构建中,将检查输入和输出文件以确定需要重建的内容。此功能通常可以节省大量时间。但是,它增加了一些I / O开销,这在大型项目中自上次构建以来没有发生太大变化的情况下就可以注意到。
监视文件系统是Gradle 6.5中的一项可选功能,并在Gradle 6.7中被标记为可投入生产。启用后,Gradle将在两次构建之间的内存中所了解的文件系统保留在内部,并跳过每次构建时从文件系统中读取的内容。这大大减少了确定自上次构建以来已更改的内容所需的磁盘I / O数量。
现在,默认情况下,所有支持的平台(包括Windows,Linux和MacOS的最新版本)都启用了此优化。
有关更多详细信息,请参见文档。
Android项目中更快的增量更改
此版本包含针对Android项目(尤其是那些使用Jettifier的项目)中的增量更改的性能改进。
例如,与Gradle 6.8相比,Santa Tracker Android项目assembleDebug上的非ABI更改提高了12%:
:santa-tracker:assembleDebug具有非abi更改性能的改进
笔记
启用文件系统监视和配置缓存以进行比较。
忽略空buildSrc项目
在早期的Gradle版本中,仅存在buildSrc目录就足以触发Gradle执行所有buildSrc任务并将结果添加buildSrc.jar到buildscript类路径中,从而导致不必要的性能开销或缓存未命中。
Gradle现在将忽略一个空buildSrc目录,并且仅buildSrc.jar当检测到构建文件和/或源文件时才会生成一个。
当buildSrc检测到空目录时,这有两个好处:
:buildSrc:* 任务将不会被不必要地执行。
空值buildSrc.jar将不会添加到buildscript类路径中,从而避免可能导致的高速缓存未命中。
新功能和可用性改进
对Apple Silicon的本机支持
以前的Gradle版本能够在具有Apple Silicon处理器的新Mac上运行,但有一些缺点:
使用本机ARM JDK,将禁用Gradle功能,例如丰富的控制台和文件系统监视功能。
使用Intel JDK,Gradle在Rosetta2兼容性层中的运行速度约为一半。
在此版本中,现在使用本机ARM JDK支持所有功能。如果您将新的Mac与Apple Silicon一起使用,则应将Gradle与本机ARM JDK结合使用以实现最佳性能。
支持Java 16
Gradle现在支持在Java 16上运行和构建。
在以前的Gradle版本中,在Java 16上运行Gradle本身会导致错误。可以使用Java 16使用工具链来构建JVM项目,但只能禁用增量编译。
从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.groovy
implementation libs.commons.lang3
}
通过这种方式声明依赖关系,可以轻松地在所有模块中重用依赖关系坐标,在IDE中提供内容帮助,并减少输入错误的风险。更重要的是,它还提供了在升级库时更改版本的单一位置。
另外,经常一起使用的依赖项可以捆绑在一起组织,并在相关项目中用单行代码声明。目录也可以在不同的版本之间共享。
对于插件作者或更高级的用例,可以使用APISettings来声明版本目录。
笔记
此功能旨在集中声明,对依赖关系解析过程没有影响。这意味着解析的版本仍然可以与版本目录中声明的版本不同。例如,如果传递性依赖项需要更高版本,则解析后的依赖项版本可以高于目录中声明的版本。
有关更多详细信息,请参考文档。
类型安全的项目访问器
在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 { }块仅支持社区插件的固定版本。现在可以接受Gradle支持的所有版本字符串表示法,包括+或latest.release。
我们建议使用该plugins {}块来使用Gradle 7应用插件apply plugin:。将来将不推荐使用旧机制。
请注意,动态版本会在您的构建过程中引入不确定的行为,因此应谨慎使用。您可以使用依赖项锁定来保存使用动态版本时解析的依赖项集。
建立可靠性改进
Gradle采用了许多优化措施,以确保构建尽可能快地执行。这些优化取决于要明确定义的任务的输入和输出。Gradle已经对任务应用了一些验证,以检查它们是否定义明确。
禁用优化验证问题
如果任务未通过输入/输出验证,则Gradle现在将执行该任务,而没有并行执行,最新检查和构建缓存的好处。有关更多信息,请参见有关运行时验证的用户手册。
验证任务之间缺少的依赖关系
现在标记出的潜在问题之一是一项任务,该任务消耗了另一个任务产生的输出,而没有声明显式或推断的任务依赖性。Gradle现在可以检测到消费者与生产者之间缺少的依赖关系,并在这种情况下发出警告。有关更多信息,请参见有关输入和输出验证的用户手册。
依赖管理的改进
正确处理具有标准JVM和Android变体的库
Java插件现在可以在依赖关系解析期间识别该org.gradle.jvm.environment属性。
这样一来,像Guava这样的库就可以清楚地区分针对standard-jvm和优化的变体android。然后Gradle根据当前项目类型(Java或Android)自动选择最佳变体,
插件开发改进
支持具有多种变体的插件
Gradle 7在插件解析期间会寻找新的org.gradle.plugin.api-version属性。这允许插件作者针对不同的Gradle版本发布其插件的不同变体。本用户手册部分介绍了如何将new属性与功能变体一起使用,以向插件添加其他变体。
默认情况下,插件尚未发布具有此属性的元数据。
对本地插件使用包含的内部版本
到目前为止,开发插件作为组合构建的一部分,以组织约定插件中的构建逻辑,到目前为止,仅适用于项目插件(build.gradle(.kts)文件中应用了插件)。设置插件(应用在settings.gradle(.kts)文件中的插件)始终必须单独开发并发布到二进制存储库中。
此版本在设置文件中引入了新的DSL结构,其中包括插件版本。包括的构建可以同时提供项目和设置插件。
pluginManagement {
includeBuild(“../my-settings-plugin”)
}
plugins {
id(“my.settings-plugin”)
}
上面的示例假定所包含的构建使用id定义了一个设置插件my.settings-plugin。
尽管包含该pluginManagement块的构建所生成的库组件对包含的构建不是自动可见的。但是,可以将相同的构建作为插件构建和普通库的构建包括在内:
pluginManagement {
// contributes plugins
includeBuild(“../project-with-plugin-and-library”)
}
// contributes libraries
includeBuild(“../project-with-plugin-and-library”)
这种区别反映了Gradle为存储库声明提供的功能-分别为插件依赖关系和生产依赖关系指定存储库。
安全公告
此版本的Gradle包含以下安全公告的修复程序:
通过系统临时目录升级本地特权
存储库内容过滤器在“设置”插件中不起作用
通过临时目录权限公开信息
升级功能
升级功能是在Gradle的早期版本中提供的功能,但现在受支持并具有向后兼容性。有关更多信息,请参见“功能生命周期”中的“用户手册”部分。
Java模块支持
现在,编译,测试和执行Java模块是一项稳定的功能。
不再需要使用激活功能java.modularity.inferModulePath.set(true)。
依赖验证
依赖性验证被提升为稳定功能。
Java工具链
Java工具链已升级为稳定功能。
更改守护进程的优先级
改变守护进程的优先级与–priority现在是一个稳定的特征。
推荐的API
在Gradle 7.0中,我们将以下类别或方法移出了孵化阶段。
注射服务
可配置属性/提供程序API
工作者API
复合体
构建缓存
正在汇报
Kotlin DSL
依赖项表示法
能力解析
解析策略调整
依赖锁定
依赖性验证
依赖约束
组件元数据规则
依赖库
依赖替换
出版
集成开发环境
工具API
Java生态系统
其他API
已解决的问题
在Gradle 7.0中修复了159个问题。
[ #16593 ]-设置类路径的依赖关系锁定未正确持久
[ #16585 ]-升级Bouncy Castle依赖项
[ #16509 ]-调查tmp目录问题
[ #16490 ]-验证Gradle TestKit是否可以与Gradle 7一起向前和向后工作
[ #16461 ]-使用“ withGroovyBuilder”时,7.0-M2无法构建
[ #16459 ] -Groovy DSL脚本插件过早截断了插件ID
[ #16406 ]-来自war插件的ProvideCompile配置未添加到testRuntimeClasspath
[ #16388 ]-让配置缓存序列化基本类型的数组
[ #16387 ]-依赖项锁定抛光
[ #16383 ]-JDK 16:InaccessibleObjectException:无法使受保护的void java.util.ResourceBundle.setParent(java.util.ResourceBundle)
[ #16364 ]-依赖关系锁定不应在构建失败时保持锁定状态
[ #16361 ]-编写Groovy升级的升级指南
[ #16360 ]-确保localGroovy /嵌入式Groovy代表“完整的” Groovy语言分布
[ #16359 ]-在文档和测试中始终使用Spock2 + JUnit平台
[ #16357 ] -Gradle Profiler-删除ApplyAbiChangeToJavaSourceFileMutator的副本
[ #16335 ]-调查macOS内存信息问题对Gradle的意义
[ #16330 ]-将嵌入式Kotlin升级到1.4.31
[ #16314 ]-为插件构建记录新的includeBuild
[ #16297 ]-Groovy3:研究初始化脚本问题
[ #16243 ]-删除“ org.samples.greeting”插件的冒烟测试
[ #16238 ]-使用失败/被忽略的测试来调查和修复代码片段
[ #16210 ]-删除文档和图表中剩余的编译和运行时事件
[ #16209 ]-允许通过标注将工作明确标记为不可缓存
[ # 16203]-从DeprecationMessageBuilder中删除willBeRemovedInGradle7()和willBecomeAnErrorInGradle7()方法
[ #16201 ]-将“ config_loc”添加到checkstyle.configProperties时出错
[ #16199 ]-回归:配置期间出现StackOverflowError
[ #16187 ]-改进了弃用消息,以解决项目范围之外的配置问题。
[ #16183 ]-当同时应用kotlin-jvm和java-gradle-plugin时,:pluginUnderTestMetadata出现配置缓存问题
[ #16160 ]-关于在没有明确任务依赖关系的另一个任务中使用任务输出的错误弃用警告
[ #16133 ]-在启用配置缓存的情况下,第二次运行时,`processDebugAndroidTestManifest`错误地过时了
[ #16117 ]-忽略生成的用于备注验证的注释的方法,以进行插件验证
[ # 16079]-版本目录中的excludePlugin不起作用
[ #16078 ]-关于TOML文件中默认插件版本的混乱不一致
[ #16062 ]-任务依赖性验证应报告问题的根源
[ #16061 ]-任务依赖项验证中的错误
[ #16059 ] -Gradle 7:跳过对已禁用任务的依赖关系验证
[ #16048 ]-使用Gradle 7.0-milestone-1的大型Android项目中的性能回归
[ #16043 ]-JavaPlugin文档指出错误的default.extendsFrom
[ #16035 ]-从Gradle中删除对JCenter的引用
[ #16030 ]-修复了在我们的构建中,在任务’:base-services:jar’`之前查询查询提供者(接口java.util.Set)的映射值的问题
[ #16027 ]-解决项目依赖项时的行为更改
[ #16018 ]-弃用jcenter()便捷方法
[ #15993 ]-删除无效的功能预览标记GRADLE_METADATA
[ #15909 ]-研究外部插件的静态分析
[ #15889 ]-节点DexingWithClasspathTransform尚未使用7.0进行编码
[ #15881 ]-不要观看不受支持的文件系统
[ #15877 ]-将“使用最终值更改FileCollection的值”变成错误
[ #15876 ]-将“在生产者完成之前查询提供者的映射值”变成错误
[ #15873 ]-使“已评估项目时调用afterEvaluate”错误
[ #15871 ]-删除ComponentSelectionReason.getDescription()
[ #15870 ]-删除Test.getClassLoaderCache()
[ #15866 ] -userguide_single中的跨文档链接已损坏
[ #15828 ]-在带有Gradle 6.8的IntelliJ IDEA中加载项目时出现StackOverflowError
[ #15812 ]-促进Java工具链
[ #15796 ] -Gradle触发其自己的弃用警告“查询任务的映射值”
[ #15744 ]-将嵌入式依赖项更新为最新版本
[ #15736 ]-重新启用跨版本转换缓存
[ #15725 ]-如果使用pluginManagement {includeBuild()},请调整插件源的解析顺序
[ #15724 ]-删除DefaultVersionSelectorScheme.DefaultVersionSelectorScheme(VersionComparator)
[ #15723 ]-每个项目默认为单个锁定文件
[ #15722 ]-默认为更新的版本排序
[ #15719 ]-删除“ javascript.base.SourceTransformationException”
[ #15713 ]-删除不推荐使用的JavaScript插件
[ #15707 ]-gradle依赖于一个不安全的第三方JAR程序包,其中包含CVE漏洞cve-2020-13956。
[ #15682 ]-取消孵化Javadoc / Sources的发布和compileOnlyApi
[ #15676 ]-取消孵化Java模块系统支持
[ #15631 ]-添加’org.gradle.plugin.api-version’属性
[ #15615 ]-如果在另一个方向上存在依赖项,则不要报告缺少的依赖项
[ #15606 ]-必须在7.0版之前执行
[ #15603 ]-将嵌入式Kotlin升级到1.4.21
[ #15600 ]-促进孵化Provider.forUseAtConfigurationTime
[ #15599 ]-删除不赞成使用的org.gradle.logging.LoggingManagerInternal
[ #15594 ]-默认副本策略的副本规格中的副本失败
[ #15585 ]-删除不赞成使用的org.gradle.api.internal.AbstractTask
[ #15579 ]-删除不推荐使用的ProjectLayout.configurableFiles和朋友
[ #15576 ]-促进孵化`ProviderFactory.fileContents`
[ #15575 ]-促进孵化`ProviderFactory。(gradleProperty | systemProperty | environmentVariable)`
[ #15573 ]-促进孵化`org.gradle.process.ExecOperations`
[ #15572 ]-促进孵化`ObjectFactory.fileCollection`
[ #15567 ]-升级单元和集成测试以在Spock 2上运行
[ #15566 ]-接受Groovy性能回归
[ #15565 ]-推广“ ObjectFactory.fileProperty”,“ directoryProperty”和“ sourceDirectorySet”
[ #15561 ]-促进孵化TAPI以通知守护程序更改的路径
[ #15560 ]-促进孵化忽略空目录
[ #15559 ]-促进孵化WorkResult.or()
[ #15558 ]-促进孵化getStableSources()
[ #15557 ]-促进孵化BuildCacheKey.toByteArray()
[ #15556 ]-促进孵化ReplacedBy
[ #15555 ]-促进孵化FileType
[ #15554 ]-促进孵化InjectionPointQualifier
[ #15553 ]-促进孵化Task.getTimeout()
[ #15552 ]-删除不赞成使用的工作验证失败
[ #15551 ]-删除不推荐使用的任意本地构建缓存配置选项
[ #15550 ]-删除不推荐使用的ValidateTaskProperties任务
[ #15549 ]-删除不建议使用的不安全监视文件系统属性
[ #15548 ]-删除JavaCompile中不推荐使用的方法
[ #15547 ]-删除不推荐使用的ImmutableFileCollection
[ #15545 ]-删除不建议使用的VFS系统属性
[ #15543 ]-删除不推荐使用的PatternSpecFactory.reportChangedDefaultExcludes()
[ #15538 ]-由于对com.sun.tools.javac.code.Symbol $ TypeSymbol的非法访问,使用JDK 16-ea28进行的工具链编译失败(在16-ea26中工作)
[ #15536 ]-选择了多个已转换的工件
[ #15512 ]-从IdeaContentRoot中删除不赞成使用的方法
[ #15509 ]-本机支持Apple芯片
[ #15505 ]-默认情况下启用文件系统监视
[ #15504 ]-删除Play插件
[ #15498 ] -Javadoc对不同的源集使用相同的输出目录
[ #15489 ]-通过评估输入属性来修复Lint任务
[ #15482 ]-删除代码质量子项目中不推荐使用的API
[ #15480 ]-删除IvyArtifactRepository.layout弃用的方法
[ # 15479]-取消TAPI测试调试功能
[ #15478 ]-解除EclipseProject TAPI模式固定装置的孵化
[ #15477 ]-解除测试输出进度事件的孵化
[ #15476 ]-消解TestLauncher方法
[ #15474 ]-取消孵化ProjectDependency和EclipseExternalDependency方法
[ #15467 ]-删除不赞成使用的工具链/安装API
[ #15430 ]-添加“ org.gradle.jvm.environment”属性
[ #15382 ]-允许从二进制插件访问目录
[ #15352 ]-依赖项的中央声明
[ #15350 ]-在带闭包的自定义配置中无法使用基于TOML文件的libs.xy
[ #15348 ]-为验证失败而禁用并行执行
[ #15347 ]-向控制台报告工作验证警告
[ #15305 ]-禁用无效工作的执行优化
[ #15250 ]-跟踪不带指纹的输出
[ #15185 ]-使用JUnit Platform进行回归时,无法通过命令行选择继承的测试
[ #15044 ]-配置缓存-Intellij同步崩溃
[ #14888 ]-让.gradle.kts脚本使用Kotlin语言和api 1.4
[ #14875 ] -Kotlin脚本应使用-Xjvm-default = enable编译
[ #14744 ] -JDK 15应该支持增量编译
[ # 14729]-插件org.yaml_snakeyaml:1.17具有一个已知漏洞-https://nvd.nist.gov/vuln/detail/CVE-2017-18640
[ #14562 ]-设置插件应对其他随附的版本可见
[ #13932 ]-将ListProperty值用作任务依赖项时过于急切
[ #13800 ]-默认情况下禁用Gradle模块元数据buildId
[ #13793 ]-在使DeprecateUndefinedBuildWorkExecutor.execute()失败之前,允许没有设置文件的源依赖项
[ #13774 ]-Gradle中的JDK16支持
[ #13491 ]-如果buildSrc不包含任何源文件或构建文件,则不应将buildSrc / build添加到类路径中。
[ #13481 ]-支持Java 16
[ #13333 ] -Provider.orElse(<provider>)急切地测试在线状态
[ #12840 ]-在MacOS上与Zulu 11.0.7 JDK进行IntelliJ IDEA Gradle同步引发新创建的守护进程具有与预期不同的上下文
[ #12742 ]-将inferModulePath = true设置为默认值
[ #12506 ]-依赖替换无法解决项目工件
[ #11418 ]-删除org.gradle.kotlin.dsl.caching.buildcache
[ #10039 ]-默认情况下创建存档时重复项失败
[ #9838 ]-删除不推荐使用的Java和Scala“语言插件”
[ #9341 ]-禁止只写任务属性
[ #8087 ]-依赖于单个Groovy库而不是groovy-all
[ #7338 ]-当文件输入没有明确的规范化/路径敏感性时,任务实现者/用户会得到令人惊讶的缓存行为
[ #6865 ]-停止DefaultProject扩展ProcessOperations
[ #9076 ]-为未通过任务类型验证的任务禁用缓存
[ #890 ]-JPMS支持
[ #16676 ]-“版本”和“捆绑包”的访问器生成策略不一致
[ #16667 ]-围绕groovydoc任务设置groovy类路径的7.0-rc-1中的回归
[ #16641 ] -Gradle 7.0的注释处理器和Java 16有问题
[ #16636 ] -Typesafe项目访问器在根构建脚本文件中不起作用
[ #16634 ]-版本目录的Typesafe访问器在子项目块中不起作用
[ #16631 ]-依赖锁定有时会创建一个空的锁定文件
[ #16581 ]-适用于大型Android构建的Gradle 7.0中的性能回归
[ #16186 ]-Android sourceSets任务在Gradle 6.8+中不显示输出
[ #16115 ]-工具API TestProgressEvents忽略测试显示名称
[ #15992 ]-com.gradle.plugin-publish应该将Gradle模块元数据上传到插件门户
已知的问题
已知问题是在发行后发现的与该发行版中的更改直接相关的问题。
已知有10个问题会影响Gradle 7.0。
[ #16665 ]-版本目录+扩展名
[ #16652 ]-无法在buildSrc插件和buildscript类路径中使用集中式依赖版本
[ #16620 ]-TestKit测试中的FileNotFoundException:lib-android / build / 20210320_1519030999411730848.compiler.options
[ #16541 ]-无法使用7.0-milestone-2运行模块化程序。使用6.8
[ #16532 ]-在设置中包含插件构建并应用设置插件时,构建失败
[ #16250 ]-版本目录错误
[ #16163 ]-使用包含的内部版本的构建插件似乎不起作用
[ #16125 ]-如果插件在根目录settings.gradle.kts中应用,则[[plugins]]中使用的版本无法编译。
[ #16028 ]-解决自定义项目依赖项时的行为更改
[ #15674 ]-新的目录API反馈
外部捐款
我们喜欢从Gradle社区获得捐助。有关贡献的信息,请访问gradle.org/contribute。
报告问题
如果您发现此发行版有问题,请遵循我们的发行准则在GitHub Issues上提交错误。如果您不确定遇到错误,请使用论坛。
我们希望您能通过Gradle建立幸福,我们期待通过Twitter或GitHub获得您的反馈。
机翻自 https://docs.gradle.org/current/release-notes.html