根据这份
发布说明,Java 11已经移除了Java EE模块。
java.xml.bind (JAXB) - REMOVED
- Java 8 - 可以使用
- Java 9 - 不建议使用
- Java 10 - 不建议使用
- Java 11 - 已经移除
了解更多信息,请查看JEP 320。
您可以通过使用Java EE技术的其他版本来解决问题。只需添加包含所需类的Maven依赖项即可:
<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>
Jakarta EE 8 更新 (2020年3月)
您可以使用Jakarta XML Binding替代旧的JAXB模块以解决问题,该模块来自于Jakarta EE 8。
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.3</version>
<scope>runtime</scope>
</dependency>
Jakarta EE 9更新(2020年11月)
使用最新的Jakarta XML Binding3.0版本:
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>3.0.0</version>
<scope>runtime</scope>
</dependency>
注意:Jakarta EE 9采用了新的API包命名空间jakarta.xml.bind.*
,因此请更新导入语句:
注意:Jakarta EE 9采用了新的API包命名空间jakarta.xml.bind.*,因此请更新导入语句。
javax.xml.bind -> jakarta.xml.bind
Jakarta EE 10更新(2022年6月)
使用最新版的Jakarta XML Binding 4.0(需要Java SE 11或更高版本):
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>4.0.0</version>
<scope>runtime</scope>
</dependency>