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