马上九月份java21就要来了,很多开源项目都放弃java8的维持了,大多数人都开始升级现有项目到java11,甚至使用较新的java17版本。
升级一个java 8的项目到java11 也不是特别难,大概分为一下步骤
pom文件修改
修改java 版本
从
<java.version>1.8</java.version>
到
<java.version>11</java.version>
这里java.version只是pom的一个属性,可以根据自己项目实际情况找出对应的值进行修改。
maven Compiler 编译器
根据我们的上下文关系,将一下java8的pom文件 :
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
修改为 java 11版本的:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
</plugins>
添加一些依赖
jaxb
一些web相关的依赖被java 11移除了,为了避免出现编译错误,让我们添加一些依赖吧
比如:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.4.0-b180725.0427</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.4.0-b180725.0644</version>
</dependency>
或者你也可以使用
<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-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
jaxws
在java 11中移除了,可能需要临时添加来让老旧的java8 🏃跑起来
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-ri</artifactId>
<version>2.3.2</version>
<type>pom</type>
</dependency>
jakarta
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>3.1.0</version>
</dependency>
Docker 镜像
如果🈶️docker 镜像文件,需要将java8版本用java11来替换。
Springboot用户
需要使用2.1.0 以后的版本