spring-boot - 升级到 gradle 6.6.1(也是 gradle 5)时,bootRepackage 分类器不起作用
问题描述
我们的项目在 gradle 4.10.2(Spring boot 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 部分,当我删除分类器 =“引导”它没有分类器功能时工作
bootRepackage {
enabled = true
classifier = "boot"
doLast{
//some tasks
}
}
为什么会这样?
解决方案
Gradle 5 删除了 Spring Boot 1.5 的 Gradle 插件所需的方法。Spring Boot 1.5支持 Gradle 2.x 或 3.x,因此它不能与 Gradle 5 一起使用也就不足为奇了。
如果您想使用更新版本的 Gradle,您还必须升级到更新版本的 Spring Boot。在撰写本文时,2.3.x 是仍受支持的最老一代 Spring Boot。
推荐阅读
- excel - 循环验证后如何发送带有字符串列表的电子邮件
- amazon-web-services - 静态路由配置问题
- python - 在 Python 中,如何指定参数是所有元素都具有相同类型的列表?
- multithreading - 如果线程数为 1,是空手道中的顺序运行还是并行运行
- python - 无法“pip3 install apex”导致无法构建加密(已安装)
- python - 无法理解函数对数字求和的方式
- perl - 查找两个 perl 嵌套哈希之间的差异
- arrays - 从字符串数组中删除字符串对象
- javascript - 在 Google Datastudio 中使用 d3.js 代码为散点图绘制刻度和轴
- listview - 查询 ListView 中每个项目的 SharedPreferences