2018-11-28 Gradle 5.0 升级指导

将您的构建从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 from org.gradle.jvmargs, if set.

潜在的重大变化

本节中的更改可能会破坏您的构建,但绝大多数已经被弃用了很长一段时间,并且很少有构建将受到大量构建的影响。我们强烈建议您首先升级到Gradle 4.10以获取有关您的构建的弃用的报告。

以下重大更改不是来自弃用,而是行为更改的结果:

  • 在使用POM时分离编译和运行时依赖性

  • publishing {}块的评估不再延迟到需要,而是行为与任何其他块一样。如果您需要推迟评估,请使用afterEvaluate {}

  • JavadocGroovydoc任务现在在执行之前删除文档的目标目录。添加此选项用来删除上次任务执行中过时的输出文件。

  • Java Library Distribution Plugin 现在基于Java Library Plugin 而不是Java Plugin

    虽然它应用了Java插件,但它的行为略有不同(例如,它添加了api配置)。因此,请确保在升级后检查构建是否按预期运行。

  • html物业CheckstyleReportFindBugsReport现在返回CustomizableHtmlReport实例,它是更容易从像Java和科特林静态类型语言配置。

  • 配置避免API已更新,以防止从未使用任务的创建和配置。

以下重大更改将显示为Gradle 4.10的弃用警告:

  • << 任务定义不再有效。换句话说,您不能使用语法task myTask << { …​ }

    使用Task.doLast() 方法,如下所示:

task myTask {
        doLast {
            ...
        }
    }
  • 您不能再在域对象名称中使用以下任何字符,例如项目和任务名称:<space> / \ : < > " ? * | 。你也不应该使用.作为开头或者结尾字符。

更多内容 查看官方发布日志

《2018-11-28 Gradle 5.0 升级指导》 IMG_0486.JPG

    原文作者:lotosbin
    原文地址: https://www.jianshu.com/p/35ad38d02400
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞