我在Gradle为4.x时使用了task wrapper
,但是当我将gradleVersion
更改为5.0时,gradle包装器指出它无法添加具有相同名称的任务。当我是4.x时,我可以从4.8更改为4.9,而没有任何问题,这没有发生。 Gradle是否更改了task wrapper
的工作方式?
最佳答案
自Gradle 4.8版本开始,在构建脚本中定义自定义wrapper
任务已被弃用,请参见Gradle 4.8 depreciations(“覆盖Gradle的内置任务”一节)
从4.8版本开始(以及5.0之前的版本),如果仍然定义自定义wrapper
任务,则应该显示以下警告消息:
$ ./gradlew clean --warning-mode all
> Configure project :
Creating a custom task named 'wrapper' has been deprecated and is scheduled to be removed in Gradle 5.0.
You can configure the existing task using the 'wrapper { }' syntax or create your custom task under a different name.'.
如所宣布的,在Gradle 5.0中已删除了对自定义
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
}
关于gradle - 如何在build.gradle中声明gradle版本5.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911102/