Java 8中使用了哪个JAXB版本?

问题描述

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>