问题描述
JAXB(用于XML绑定的Java体系结构)已被发布为Maven工件,尽管它与JRE捆绑在一起,直到Java 8(以及带有选项的Java 9/10)。
我的问题是:Maven Central上的哪个JAXB版本对应于Java 8的捆绑版本? (而且,对于Java 9/10的功能选项也可以吗?)
我在https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api中看到:
- 2.2。*(〜2.2.12)
- 2.3.0
- 2.3.1
- 2.4.0-*(正在开发中)
- (3.0.0为
jakarta.xml.*
)
解决方法
就Java 8而言:
$ $(/usr/libexec/java_home -v 1.8)/bin/xjc -version
xjc 2.2.8-b130911.1802
已记录在here中,指定了Maven坐标:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-bom</artifactId>
<version>2.2.8</version>
<type>pom</type>
</dependency>
尽管
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.8</version>
<scope>provided</scope>
</dependency>
对于Java 8来说是准确的。对于Java 9+,最新的可用功能(如您所观察到的)是:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.4.0-b180830.0359</version>
</dependency>