如何在build.gradle中声明gradle版本5.0?

时间:2018-11-28 14:14:02

标签: gradle build.gradle

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

2 个答案:

答案 0 :(得分:6)

自Gradle 4.8版本开始,已不赞成在构建脚本中定义自定义wrapper任务,请参见Gradle 4.8 depreciations覆盖Gradle的内置任务”一节

自4.8版(以及5.0之前的版本)开始,如果您仍然定义自定义wrapper任务,则应该显示以下警告消息:

  

$ ./gradlew clean --warning-mode all

     

>配置项目:

     

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

     

您可以使用以下命令配置现有任务   'wrapper {}'语法或在其他环境下创建自定义任务   名称。”

如所宣布的,自定义wrapper任务的支持已在Gradle 5.0中删除,因此您需要使用新的方式来配置包装器:

// 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
}

答案 1 :(得分:-1)

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

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

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