升级到Sping Boot 3.0.x后,Gradle找不到org.ehcache:ehcache:.

ua4mk5z4  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(199)

我目前正在将Sping Boot Gradle项目从2.7.x升级到3.0.x。在这个项目中,我们将Ehcache库声明为API依赖项:

api 'org.ehcache:ehcache'

在阅读了迁移指南之后,我将其更改为:

api('org.ehcache:ehcache') {
    capabilities {
        requireCapability('org.ehcache:ehcache-jakarta')
    }
}

但是,在运行./gradlew build后,Gradle无法解决依赖关系:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find org.ehcache:ehcache:.
     Required by:
         project :

我尝试了以下可能的解决方法:

api 'org.ehcache:ehcache-jakarta'

不起作用。

api 'org.ehcache:ehcache:jakarta'

不起作用。
然而,当声明一个版本时,它确实工作:

api 'org.ehcache:ehcache:3.10.8:jakarta'

但是,如果这是由Sping Boot 管理的,为什么要声明版本呢?

Sping Boot 版本:3.0.4Gradle Wrapper版本:7.6.1

uinbv5nw

uinbv5nw1#

你可以配置一个有分类器而没有版本的依赖,如下所示:

api("org.ehcache:ehcache::jakarta")

请注意省略了版本号的::
为了在此示例中正确应用Sping Boot 的依赖管理,您必须使用Gradle的内置平台支持,而不是依赖管理插件:

api(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))

相关问题