【问题标题】:How to declare gradle version 5.0 in build.gradle?如何在 build.gradle 中声明 gradle 版本 5.0?
【发布时间】:2018-11-28 14:14:02
【问题描述】:

我在 Gradle 为 4.x 时使用 task wrapper 但当我将 gradleVersion 更改为 5.0 时,gradle 包装器指出它无法添加同名任务。当它是 4.x 时,当我可以从 4.8 更改为 4.9 而没有问题时,这并没有发生。 Gradle 是否改变了 task wrapper 的工作方式?

【问题讨论】:

  • 我找到的唯一线索是wrapper { distributionType = Wrapper.DistributionType.ALL }

标签: gradle build.gradle


【解决方案1】:

自 Gradle 4.8 版本以来,已弃用在构建脚本中定义自定义 wrapper 任务,请参阅 Gradle 4.8 depreciations覆盖 Gradle 的内置任务部分

从 4.8 版(以及 5.0 之前)开始,如果您仍然定义自定义 wrapper 任务,您应该会收到如下警告消息:

$ ./gradlew clean --warning-mode all

> 配置项目:

创建名为“wrapper”的自定义任务已被弃用,并计划在 Gradle 5.0 中删除。

您可以使用 'wrapper { }' 语法或在不同的环境下创建自定义任务 名字。'。

正如所宣布的,Gradle 5.0 中已移除对自定义 wrapper 任务的支持,因此您需要使用新的方式来配置 Wrapper:

// Configuring the wrapper, the old way (gradle < 4.8 )
// see https://docs.gradle.org/4.4/userguide/gradle_wrapper.html#sec:wrapper_generation
task wrapper(type: Wrapper) {
    gradleVersion = '4.4'
    distributionType = Wrapper.DistributionType.BIN
}

// Configuring the wrapper, the new way (since Gradle 4.8) 
// see https://docs.gradle.org/current/userguide/gradle_wrapper.html#customizing_wrapper
wrapper{
    gradleVersion = '5.1'
    distributionType = Wrapper.DistributionType.BIN
}

【讨论】:

  • gradleVersion = 4.9 应该是gradleVersion = '4.9'
  • 感谢整洁的回答,完美!
【解决方案2】:

由于 gradle 4.5 版后不推荐使用任务包装器,因此 wrapper 应替换为 任务包装器

// instead of
task wrapper(type: Wrapper) {
    gradleVersion = '4.0'
}

// try this
wrapper {
    gradleVersion = '5.0'
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2021-09-18
    • 2019-11-06
    • 2015-02-11
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多