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

JHipster旧项目JDK8升JDK11及Spring Boot版本不生效问题求助

JHipster老旧项目升级至JDK11的结构化解决方案

一、先搞定Spring Boot版本不生效的问题

  • 彻底清理依赖缓存
    • 执行Maven命令强制更新依赖:mvn clean install -U,Gradle项目用gradle clean build --refresh-dependencies
    • 手动删除本地Maven仓库中Spring Boot 2.0.4的残留包,路径一般是~/.m2/repository/org/springframework/boot/spring-boot-2.0.4.RELEASE及相关子目录
  • 检查依赖管理优先级
    • 确保pom.xml的dependencyManagement中,jhipster-dependencies 3.0.1的导入声明在最前面,Spring Boot的依赖不要硬写版本号,让JHipster的依赖管理自动控制版本:
      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>io.github.jhipster</groupId>
                  <artifactId>jhipster-dependencies</artifactId>
                  <version>3.0.1</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
              <!-- 其他依赖管理声明 -->
          </dependencies>
      </dependencyManagement>
      
      比如Spring Boot Starter依赖要写成这样,不要加version:
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      
  • 清理IDE缓存
    • IntelliJ:点击File → Invalidate Caches...,勾选Clear file system cache and local history后重启IDE
    • Eclipse:点击Project → Clean...清理项目,再右键项目选Maven → Update Project

二、解决Liquibase的snakeyaml依赖报错

  • 升级Liquibase版本
    旧版本Liquibase的manifest存在引用缺失问题,直接升级到兼容JHipster 3.0.1的版本,比如3.8.9:
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <version>3.8.9</version>
    </dependency>
    
  • 手动管理snakeyaml依赖
    如果升级Liquibase后还有问题,就排除它自带的snakeyaml,手动添加兼容版本:
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.26</version>
    </dependency>
    

三、适配JDK11环境

  • 修改编译配置
    Maven项目更新maven-compiler-plugin配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source>11</source>
            <target>11</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
    
    Gradle项目修改build.gradle:
    sourceCompatibility = 11
    targetCompatibility = 11
    
  • 更新Firebird JDBC驱动
    Firebird 3.0.9需要用支持JDK11的Jaybird驱动版本,比如4.0.9.java8(兼容JDK8-17):
    <dependency>
        <groupId>org.firebirdsql.jdbc</groupId>
        <artifactId>jaybird</artifactId>
        <version>4.0.9.java8</version>
    </dependency>
    
  • 替换废弃API
    扫描代码中JDK11已废弃/移除的API,比如sun.misc.BASE64Encoder换成java.util.Base64,用IDE的代码检查工具(比如IntelliJ的Inspections)快速定位修改

四、验证升级效果

  • 启动项目,查看日志确认Spring Boot版本为2.1.4.RELEASE、JDK版本为11
  • 测试数据库连接、核心接口、业务流程是否正常
  • 运行所有单元测试和集成测试,确保代码兼容性没问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:19:55