JAVA产线主流平台升级:从JDK8到JDK11

需求

  1. 减少安全漏洞;
  2. 规避商业收费风险;
  3. 提高技术先进性和前瞻性;
  4. 兼顾平台稳定性

目标

  1. 升级Oracle JDK到 Adoptopenjdk 11
  2. 升级Maven及其相应插件,支持JDK11
  3. 升级项目Jar包依赖,适配JDK11,修复已知安全漏洞

升级

JDK

安装

Ubuntu

install adoptopenjdk

wget -qO – https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add –
sudo add-apt-repository –yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
sudo apt-get update
sudo apt-get install -y adoptopenjdk-11-hotspot
sudo update-alternatives –set java /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/java

手动选择java版本:

sudo update-alternatives –config java

CentOS

install adoptopenjdk

sudo cat <<EOF | sudo tee -a /etc/yum.repos.d/adoptopenjdk.repo
[AdoptOpenJDK]
name=AdoptOpenJDK
baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/x86_64
enabled=1
gpgcheck=1
gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public
EOF
sudo yum update
sudo yum install -y adoptopenjdk-11-hotspot
sudo update-alternatives –set java /usr/lib/jvm/adoptopenjdk-11-hotspot/bin/java

Maven

常用Maven插件版本升级

组件

重要性

JDK11 最低要求

最新版本

Maven 重要 > 3.5 3.6
maven-jar-plugin
重要 3.1.2
maven-shade-plugin
3.1.1
maven-assembly-plugin
重要 3.1.1
maven-surefire-plugin
2.22.2
jacoco-maven-plugin
0.8.4
dockerfile-maven-plugin
1.3.7
maven-compiler-plugin
重要 3.8.1
maven-enforcer-plugin
1.4.1
versions-maven-plugin
2.7
maven-dependency-plugin
重要 3.1.1
maven-resources-plugin
重要 3.1.0
jmeter-maven-plugin 2.7.0
spring-boot-maven-plugin 2.1.7.RELEASE

Maven规范

  1. 为了统一插件版本,插件版本管理在根项目pom.xml的pluginManagement进行定义;
  2. 为了统一依赖版本,各模块依赖版本通过属性定义的方式在根项目pom.xml定义,其他子模块使用;

参考

  1. 将Maven项目迁移到Java 11 :  https://www.jdon.com/49937
  2. Oracle JDK 之外的版本: https://www.oschina.net/news/99836/time-to-look-beyond-oracles-jdk
  3. JDK8升级JDK11详细指南: https://www.jianshu.com/p/81b65eded96c
  4. Oracle JDK8升级JDK11指南: https://docs.oracle.com/javase/10/migrate/JSMIG.pdf
  5. Oracle JDK11 JVM 参数 https://docs.oracle.com/en/java/javase/11/tools/java.html

发表评论

邮箱地址不会被公开。 必填项已用*标注