升级到现代jdk
jdk8 的逼格已经不足,所以应该升级到最新版本的jdk
jdk 14 还在开发中, 而jdk 13 已经可用,因为jdk 9 发生了根本的改变,添加了模块化系统,所以先升级到jdk 11
如果流畅的升级到了jdk 11, 那么升级到jdk 13 是非常丝滑
作为基础架构在理想情况下,对变更的处理应该是对业务感知比较小(完全无感知是不可能)
PS: 摩尔定律失效,但是启示应该让人深思,每18个月处理器性能升级一倍, 那么软件也应该也一样,每18个月或24个月,软件技术应该升级一倍
修改依赖
Upgrade jdk version
- 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 的工具时