[spring-projects/spring-boot]需要 Spring Boot Gradle 插件与 Gradle 版本的兼容性表

2024-04-29 337 views
4

Gradle 4 引入了一种全新的依赖管理模型,如此所述。 Spring Boot Gradle 插件 1.5.3 似乎无法正确使用新 Gradle 配置的构建。即使在 中指定了依赖项implementation,也需要在 中重复它runtime,否则我们ClassNotFoundException在运行 uber jar 时会在运行时得到 a 。此外,使用runtimeOnly代替runtime会导致类似的ClassNotFoundException

这张票的目的是在文档中提供一个兼容性图表,显示哪个版本的 Boot 插件应该与哪个版本的 Gradle 配合使用。如果没有它,它看起来就像 ac*apshoot,其中插件可能会也可能不会工作,具体取决于项目配置。

回答

2

Spring Boot 1.5.x 支持 Gradle 2(2.9 或更高版本)和 3。这已经在系统要求中进行了描述。 Spring Boot 2支持 Gradle 4

7

@wilkinsona 我错过了关于 Gradle 的小注释。我们可以拥有一张像 Servlet 容器那样漂亮的表吗?

0

是的,我想我们可以添加一个支持的构建系统和我们支持的版本的表格。

5

Spring boot 1.4.x 不适用于 gradle 4.x

0

@wakingrufus Spring Boot 1.4 已结束生命。如果可以的话,请升级到 Spring Boot 2.0。

5

@philwebb 足够公平了。我的组织目前正在进行升级,我只是把它放在那里,因为这是我在兼容性方面遇到的问题。

7

如果 @wakingrufus 1.5 对您来说是一个更简单的选择,那么仍然受支持。

0

但请注意,Boot 1.5 也不正式支持 Gradle 4。

7

我最近也遇到了关于实现依赖性的问题。

我的解决方法是将 Spring boot 插件的 customConfiguration 设置为 runtimeClasspath - 其中包括实现和运行时依赖项。

springBoot {
    customConfiguration = configurations.runtimeClasspath.name
}
6

结束有利于 PR #14002。

7

根据Spring Docs,下表显示了相应 Spring Boot 版本使用的 gradle 或 maven 版本。

春季启动版本 Maven版本 摇篮版本
2.2.x 3.3+ 5.x(也支持 4.10,但已弃用)
2.1.x 3.3+ 4.4+
2.0.x 3.2+ 4.x
1.5.x 3.2+ 2.9 或 3.x
1.4.x 3.2+ 1.12 或 2.x
1.3.x 3.2+ 1.12 或 2.x
1.2.x 3.2+ 1.12 或 2.x
1.1.x 3.0+ 1.6+
1.0.x 3.0+ 1.6+
0.0.x 3.0+ 1.6+
5

Gradle 8.x 的更新:官方文档(参见例如2.7.92.7.10)声明 Gradle 8.x 需要 Spring Boot 至少 2.7.10 或 3.0.3;非官方的,至少需要 2.6.5。使用 Spring Boot <= 2.6.4,您将遇到明显的问题,例如bootRun任务消失;)