我目前正在将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
1条答案
按热度按时间uinbv5nw1#
你可以配置一个有分类器而没有版本的依赖,如下所示:
请注意省略了版本号的
::
。为了在此示例中正确应用Sping Boot 的依赖管理,您必须使用Gradle的内置平台支持,而不是依赖管理插件: