Springboot项目升级jdk11

文章介绍了如何在本地升级到JDK11并验证安装,同时针对SpringBoot项目,讲解了修改pom文件以适应JDK11的方法,包括使用maven-compiler-plugin和spring-boot-maven-plugin的区别。此外,还提到了升级Lombok和其他依赖版本,以及解决JDK11中缺少JAXBAPI依赖的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、本地升级jdk11

  1. 下载jdk11
  2. 安装
  3. 配置环境变量
  4. java -version查看版本,是否配置成功

参考:

jdk11 下载与安装(非常详细,一步不落!!!)

Java jdk11 在Mac上的安装和配置以及JDK多个版本之间切换

一、pom文件修改

打包成可运行的springboot jar

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>
<plugins>
     <plugin>
           <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
</plugins>

打包成普通jar

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

maven-compiler-plugin spring-boot-maven-plugin 区别:

  1. maven-compiler-plugin是jar包生成插件,提供了manifest的配置,生成jar包中一般存放的是.class文件已经resources目录下的东西,文件很小。
  2. spring-boot-maven-plugin主要目标是spring-boot的启动、停止、运行和repackage,对于打包来说那就是repackage,也就是说它实现的打包功能是重新打包,原始jar包还是由maven-jar-plugin生成的
  3. 使用maven-compiler-plugin生成的jar不能直接通过java -jar运行,提示:没有主清单属性。

二、其它依赖版本调整

  • lombok升级至1.18.4后的版本,如1.18.16
  • maven-compiler-plugin升级至3.8.0后的版本,如3.8.1
  • maven-surefire-plugin升级至3.0.0-M1后的版本,如3.0.0-M5
  • JDK11,缺少JAXB APIjar包。JAXB APIjava EE API,因此在java SE 11 中不再包含这个 Jar 包,新增以下四个依赖:c
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>

参考:升级JDK11 Maven依赖 

### 创建 JDK 1.8 的 Spring Boot 项目 对于希望在 IntelliJ IDEA 2021 版本中创建基于 JDK 1.8 的 Spring Boot 项目的开发者而言,当前面临的主要挑战在于默认的 Spring Initializr 不再提供对 Java 8 的支持[^2]。然而,仍存在几种可行的方法来实现这一目标。 #### 方法一:更改 Spring Initializr URL 一种解决方案是通过更换用于初始化项目Spring Initializr 地址到一个仍然支持 JDK 1.8 的服务提供商,比如阿里云提供的启动器地址 `https://start.aliyun.com`。这可以通过调整 IDE 设置中的 Spring Initializr 配置完成: 1. 打开 **File | Settings** (Windows/Linux) 或者 **IntelliJ IDEA | Preferences** (macOS). 2. 寻找并进入 **Build, Execution, Deployment | Build Tools | Maven | Importing**, 并不是这里而是应该找到 **New Project Wizard | Additional Libraries and Frameworks | Spring Initializr Service URLs** 3. 添加新的条目,URL 设定为 `https://start.aliyun.com`. ```bash # 替换原有的Spring Initializr URL为例 https://start.aliyun.com ``` 这种方法允许继续利用图形界面的方式创建兼容 JDK 1.8 的 Spring Boot 应用程序[^4]. #### 方法二:手动配置现有模板 另一种方法是从更高版本的 JDK 开始创建项目之后,再回退至 JDK 1.8: - 使用标准流程创建一个新的 Spring Boot 项目. - 修改项目的构建文件 (`pom.xml`) 来指定较低版本的 Java 编译级别. ```xml <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ``` 接着,在项目结构设置 (**Project Structure**) 中确认所使用的 SDK 是 JDK 1.8,并确保模块级别的语言等级也被设为了 "8 - Lambdas, type annotations etc."[^3]. 最后一步是在命令行工具或终端内执行 Maven 命令重新导入依赖项以应用这些变更。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟林洁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值