You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

从Spring 5迁移到Spring 6时Jakarta Cache依赖无法下载的问题求助

从Spring 5迁移到Spring 6时Jakarta Cache依赖无法下载的问题求助

问题背景

最近在把Spring 5项目升级到Spring 6的过程中,按照Jakarta EE的规范要求,需要将原有的javax.cache相关依赖替换为jakarta.cache,但配置好依赖后Maven始终无法下载对应的资源,甚至在Maven Central里搜索jakarta.cache:jakarta.cache-api也找不到匹配的依赖项,这直接卡住了我的迁移进度,有没有大佬能帮忙分析下问题所在?

我当前配置的依赖代码如下:

<dependency>
    <groupId>jakarta.cache</groupId>
    <artifactId>jakarta.cache-api</artifactId>
</dependency>

可能的解决思路

  • 给依赖添加明确的版本号:Maven不会自动解析无版本声明的依赖,你需要为jakarta.cache-api指定和Spring 6兼容的版本号。通常Spring 6对应的Jakarta Cache API稳定版本是2.0.12.1.0,配置示例:
    <dependency>
        <groupId>jakarta.cache</groupId>
        <artifactId>jakarta.cache-api</artifactId>
        <version>2.1.0</version>
        <!-- 如果你的应用容器或Spring Boot Starter已经包含了API实现,可将scope设为provided -->
        <scope>provided</scope>
    </dependency>
    
  • 检查Maven镜像源配置:如果你的Maven使用了自定义镜像(比如企业内部私有镜像),很可能该镜像没有同步Jakarta EE系列的依赖包。可以临时切换回Maven中央仓库的默认配置,或者联系运维确认私有镜像是否同步了jakarta.cache组的资源。
  • 清理Maven本地仓库缓存:本地仓库中残留的损坏缓存文件也可能导致下载失败。你可以手动删除本地仓库中~/.m2/repository/jakarta/cache目录,然后重新执行mvn clean install命令触发依赖拉取。
  • 引入Spring 6的BOM统一管理版本:如果项目中没有使用Spring物料清单(BOM),建议引入Spring 6对应的BOM,它会自动管理所有Jakarta相关依赖的兼容版本,避免版本冲突问题。配置示例:
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>6.0.15</version> <!-- 替换为你实际使用的Spring 6版本 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

如果以上方法都没能解决问题,建议执行mvn clean install -X命令生成Debug级别的日志,把日志里和依赖下载相关的错误信息贴出来,这样能更精准地定位问题哦!

火山引擎 最新活动