You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3迁移后无法访问MacAlgorithm问题求助

解决Spring Boot 3迁移后cannot access MacAlgorithm编译错误

问题分析

迁移JHipster应用到Spring Boot 3后,编译时报错[55,46] cannot access MacAlgorithm,但IDE无报错,核心原因是编译类路径中缺失MacAlgorithm所在的依赖模块,或者存在依赖版本冲突。

MacAlgorithm类属于Spring Security的spring-security-oauth2-jose模块,在Spring Security 6(对应Spring Boot 3)中位于org.springframework.security.oauth2.jose.jws包下。

解决方案

1. 确认依赖完整性

检查项目依赖树,确认spring-security-oauth2-jose模块是否存在:

  • Maven执行命令:mvn dependency:tree | grep spring-security-oauth2-jose
  • Gradle执行命令:gradle dependencies | grep spring-security-oauth2-jose

如果未找到该模块,手动添加依赖到pom.xml:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth2-jose</artifactId>
</dependency>

注:Spring Boot 3的spring-boot-starter-oauth2-resource-server starter理论上已包含该依赖,但可能因JHipster框架的依赖排除规则导致缺失。

2. 清理编译缓存

IDE无报错但编译失败,通常是构建工具缓存问题,执行以下命令清理后重新编译:

# Maven
mvn clean install

# Gradle
gradle clean build

3. 升级JHipster框架版本

确保使用的jhipster-framework版本兼容Spring Boot 3,旧版本JHipster可能依赖Spring Security 5,与Spring Boot 3的Spring Security 6冲突。建议升级到JHipster 7.9及以上版本(该版本开始支持Spring Boot 3)。

4. 排除冲突依赖

如果依赖树中存在多个版本的spring-security-oauth2-jose,排除低版本依赖:

<dependency>
    <groupId>tech.jhipster</groupId>
    <artifactId>jhipster-framework</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-oauth2-jose</artifactId>
        </exclusion>
    </exclusions>
</dependency>

内容的提问来源于stack exchange,提问作者dave0688

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 22:52:00