相关文章推荐
稳重的钥匙  ·  《Android ...·  1 年前    · 
健身的板凳  ·  双重差分能解决内生性问题吗?可是万一遗漏变量 ...·  1 年前    · 
玩篮球的火龙果  ·  SDN-based Network ...·  2 年前    · 
强健的皮带  ·  psql:无法连接到服务器...服务器是否在 ...·  2 年前    · 
留胡子的鸵鸟  ·  脚本语言 - ...·  2 年前    · 
Code  ›  JDK8升级JDK11过程记录开发者社区
https://cloud.tencent.com/developer/article/1748502
俊秀的花卷
2 年前
作者头像
肉眼品世界
0 篇文章

JDK8升级JDK11过程记录

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 肉眼品世界 > 正文

JDK8升级JDK11过程记录

发布 于 2020-11-17 12:18:13
1.5K 0
举报

1、引言

最新版本Java15都出来了,很多小伙伴还在使用Java8,当然JDK15不是长期支持版本,最新的长期支持版本是Java11,而下一个长期支持版本要等到2021年9月发布的Java17。最近把内部几个系统从Java8升级到了Java11,升级过程还是比较简单的。

Java11的新特性如下,最兴奋的功能是ZGC,相关资料请其他文档

注:以下教程基于Maven配置

2、准备工作

下载openjdk

然后导入到Idea中:

打开Project Structure,以此点击SDKs--> 加号 --> Add JDK 选择目录添加,当然也可以选第一个Download JDK直接添加,不过笔者网络不好没下下来。

3、编译器支持

Maven支持Java11的的最低版本是3.5.4(该版本以后可以不用升级)

编译插件支持,设置完成后刷新Idea,会自动将当前项目设置成JDK11

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

4、依赖升级

(1)额外依赖的的jar包

Java11中将一些包从标准JDK中移除,不引用可能会导致项目报错,

@Resource 注解支持:

<dependency>
   <groupId>javax.annotation</groupId>
   <artifactId>javax.annotation-api</artifactId>
   <version>1.3.1</version>
</dependency>

jaxb支持:

JDK9以后的版本,模块化的概念去除了JAXB(默认没有加载),需做接入声明

<!--  jdk11 jaxb模块引用 start  -->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!--  jdk11 jaxb模块引用 end  -->

(2)项目中可能用到的jar包

Lombok:

首先把现在项目中所有的lombok依赖排除掉,通过Idea Maven Helper插件搜索:

然后引入lombok最新版本:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.14</version>
    <scope>provided</scope>
</dependency>

Jacoco支持:

升级到最新版本,最低要求0.8.0

如果是用mavan plugin方式引入,修改pom.xml文件:

<plugin>
    <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
 
推荐文章
稳重的钥匙  ·  《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.6节Socket网络通信-阿里云开发者社区
1 年前
健身的板凳  ·  双重差分能解决内生性问题吗?可是万一遗漏变量对政策前后的效果不同呢?这时候做出来的差分还是正确的吗? - 知乎
1 年前
玩篮球的火龙果  ·  SDN-based Network Management Solution - 冰柠檬的夏天 - 博客园
2 年前
强健的皮带  ·  psql:无法连接到服务器...服务器是否在主机上运行...并接受端口 5432 上的 TCP/IP 连接?_postgresql_Postgredaxiang-PostgreSQL
2 年前
留胡子的鸵鸟  ·  脚本语言 - 如何查看当前的javascript版本? - SegmentFault 思否
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号