将您的构建从Gradle 4.x升级到5.0
在大多数情况下,您需要应用升级后的所有版本中的更改。例如,如果您从Gradle 4.3升级,则还需要应用自4.4,4.5等以来的更改。💡
如果您使用的是Gradle for Android,则需要移至Android Gradle Plugin和Android Studio的3.4或更高版本。
建议所有用户使用以下步骤:
-
如果你不是在4.10.2版本,将您的项目升级到4.10.2。
-
尝试运行
gradle help --scan
并查看生成的构建扫描的弃用视图。如果没有警告,则不会显示“弃用”选项卡。 -
更新你的插件。
有些插件会破坏这个新版本的Gradle,例如因为它们使用已删除或更改的内部API。当插件尝试使用API的弃用部分时,上一步将通过发出弃用警告来帮助您识别潜在问题。
特别是,您需要使用至少2.x版本的Shadow插件 。
-
运行gradle wrapper --gradle-version 5.0以将项目更新到5.0
-
如果还没有,请转到Java 8或更高版本。Gradle 4.x需要Java 7,而运行Gradle 5需要Java 8。
-
阅读4.10升级部分并进行必要的更改。
从4.10及更早版本升级
如果您尚未使用4.10版本,请跳至适用于您当前Gradle版本的部分,直到您到达此处为止。
其他变化
-
不再需要
enableFeaturePreview('IMPROVED_POM_SUPPORT')
和enableFeaturePreview('STABLE_PUBLISHING')
标志。现在默认启用这些功能。 -
Gradle现在捆绑JAXB for Java 9及更高版本。You can remove the
--add-modules java.xml.bind
option fromorg.gradle.jvmargs
, if set.
潜在的重大变化
本节中的更改可能会破坏您的构建,但绝大多数已经被弃用了很长一段时间,并且很少有构建将受到大量构建的影响。我们强烈建议您首先升级到Gradle 4.10以获取有关您的构建的弃用的报告。
以下重大更改不是来自弃用,而是行为更改的结果:
-
publishing {}
块的评估不再延迟到需要,而是行为与任何其他块一样。如果您需要推迟评估,请使用afterEvaluate {}
。 -
Javadoc
和Groovydoc
任务现在在执行之前删除文档的目标目录。添加此选项用来删除上次任务执行中过时的输出文件。 -
Java Library Distribution Plugin 现在基于Java Library Plugin 而不是Java Plugin。
虽然它应用了Java插件,但它的行为略有不同(例如,它添加了
api
配置)。因此,请确保在升级后检查构建是否按预期运行。 -
该
html
物业CheckstyleReport
和FindBugsReport
现在返回CustomizableHtmlReport
实例,它是更容易从像Java和科特林静态类型语言配置。 -
配置避免API已更新,以防止从未使用任务的创建和配置。
以下重大更改将显示为Gradle 4.10的弃用警告:
-
<<
任务定义不再有效。换句话说,您不能使用语法task myTask << { … }
。使用Task.doLast() 方法,如下所示:
task myTask {
doLast {
...
}
}
- 您不能再在域对象名称中使用以下任何字符,例如项目和任务名称:<space>
/ \ : < > " ?
* |
。你也不应该使用.
作为开头或者结尾字符。
更多内容 查看官方发布日志
IMG_0486.JPG
网友评论