本文涉及修改pom的内容无先后顺序无依赖关系。
涉及修改的依赖:
<properties></properties>中新增<java.version>11</java.version>
<properties>
<java.version>11</java.version>
...
</properties>
lombok升级至1.18.4后的版本,如1.18.22
jacoco升级至0.8.2后的版本,推荐0.8.3
maven-surefire-plugin升级至3.0.0-M1后的版本,如3.0.0-M5
maven-compiler-plugin升级至3.8.0后的版本,如3.8.1,同时修改configurationr
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>${java.version}</release>
</configuration>
</plugin>
JDK11废弃了部分包(JEP 320: Remove the Java EE and CORBA Modules (openjdk.org)),一般应用中涉及jaxws, jaxb, annotation,需要用新依赖替换(Jakarta EE Maven Coordinates - Eclipsepedia)
<properties>
<java.version>11</java.version>
<jax.version>2.3.1</jax.version>
...
</properties>
<dependencyManagement>
...
<!-- 即使能启动,但应用涉及xml读写的话,不添加下面jax包运行时会异常 -->
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>${jax.version}</version>
</dependency>
<!-- jaxb-runtime版本大于3.0.0时有包更改,如果用这套maven配置需要指定3.0.0以下 -->
<!-- 商旅部分包中包含jakarta.xml相关包,和jaxb-api/javax.activation-api有重复类,可能需要排除jaxb-runtime中的jaxb-api,javax.activation-api -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>${jax.version}</version>
</dependency>
<!-- jaxws-api中包含javax.annotation-api,若添加了jaxws可不添加annotation-api -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 若启动还有报错缺少依赖请自行Google -->
</dependencyManagement>
其他:
添加依赖后,需要的Module添加对应dependency,比如涉及数据库xml的Module需要加jax相关包,大多数Module需要加annotation包(如果不确定用没用那就每个Module都加入依赖),若compile出现重复class,自行排包。
其实更推荐使用jakarta相关包jakarta.xml.ws/jakarta.xml.bind,但代码中使用了javax.xml包中的类,若更换包得修改代码import