升级到 gradle 6.6.1(也是 gralde 5)时,bootRepackage 分类器不起作用

bootRepackage classifier is not working when upgrade to gradle 6.6.1 (also gralde 5)

我们的项目在 gradle 4.10.2(Spring 引导 1.5.22)中仍然运行良好,但是当我将 gradle 升级到 6.6.1 时它抛出了异常

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':my-app'.
Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener
Caused by: java.lang.NoSuchMethodError: org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
at org.springframework.boot.gradle.repackage.RepackagePluginFeatures$RegisterInputsOutputsAction.setupInputOutputs(RepackagePluginFeatures.java:150)
at org.springframework.boot.gradle.repackage.RepackagePluginFeatures$RegisterInputsOutputsAction.execute(RepackagePluginFeatures.java:136)

我已经试过了 gradle 5 它仍然发生了。

这是我的 gradle.build bootRepackage 部分,当我删除 classifier = "boot" 时,它在没有分类器功能的情况下工作

bootRepackage {
    enabled = true
    classifier = "boot"
    doLast{
        //some tasks
    }
}

为什么会这样?

Gradle 5 删除了 Spring Boot 1.5 的 Gradle 插件需要的方法。 Spring Boot 1.5 supports Gradle 2.x or 3.x 所以它不适用于 Gradle 5.

也就不足为奇了

如果您想使用更新版本的 Gradle,您还必须升级到更新版本的 Spring Boot。在撰写本文时,2.3.x 是最老的 Spring 引导版本,但仍受支持。