upgrade-jdk

The Redefine Team Lv5

升级到现代jdk

jdk8 的逼格已经不足,所以应该升级到最新版本的jdk

jdk 14 还在开发中, 而jdk 13 已经可用,因为jdk 9 发生了根本的改变,添加了模块化系统,所以先升级到jdk 11

如果流畅的升级到了jdk 11, 那么升级到jdk 13 是非常丝滑

作为基础架构在理想情况下,对变更的处理应该是对业务感知比较小(完全无感知是不可能)

PS: 摩尔定律失效,但是启示应该让人深思,每18个月处理器性能升级一倍, 那么软件也应该也一样,每18个月或24个月,软件技术应该升级一倍

修改依赖

Upgrade jdk version

  1. jdeps maven plugin 分析项目升级到jdk 11 所需要解决的问题
root pom.xml
properties
1
2
3
4
5
<properties>
<jaxb.version>2.3.0</jaxb.version>
<javax.activation.version>1.1.1</javax.activation.version>
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
</proeprties>
profile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<profile>
<id>jdk9</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<!-- TODO using jdk argLine to get rid of the jaxb dependencies -->
<properties>
<jdk.argLine>--add-modules java.xml.bind</jdk.argLine>
</properties>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${javax.activation.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${javax.annotation-api.version}</version>
</dependency>
</dependencies>
</profile>

child project dependency

base project dependency
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${javax.activation.version}</version>
</dependency>

lock project dependency
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jaxb.version}</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>${javax.activation.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${javax.annotation-api.version}</version>
</dependency>

碰到的困难

调用com.sun.tools 有些问题,特别是做一些类似lombok 的工具时

  • 标题: upgrade-jdk
  • 作者: The Redefine Team
  • 创建于 : 2019-11-27 10:13:56
  • 更新于 : 2023-05-23 18:52:03
  • 链接: https://redefine.ohevan.com/2019/11/27/upgrade-jdk/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论