【发布时间】:2018-04-25 08:13:39
【问题描述】:
当我使用 JDK 8 编译我的 XSD 时,我得到了我期望的输出。
当我用 JDK 7 编译我的 XSD 时,它似乎没有读取我的 binding.xjb 文件。
我很确定这是 jaxb-v2 之间修复的众多缺陷之一
JDK7 第一版 JAXB RI 2.2.4-1
JDK8 第一版 JAXB RI 2.2.8
发行说明:JAXB
如果可能的话,谁能帮我解决如何更新 JDK 使用的 JAXB RI 版本?
我正在使用 Maven 构建并使用...的依赖项
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-runtime</artifactId>
<version>0.6.4</version>
</dependency>
我使用的插件是...
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.13.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<catalog>target/classes/catalog.cat</catalog>
<strict>false</strict>
<extension>true</extension>
<schemaIncludes>
<include>*.xsd</include>
</schemaIncludes>
<bindingIncludes>
<include>*.xjb</include>
</bindingIncludes>
<generatePackage>com.pcmsgroup.v21.esi.deviceservice.bean</generatePackage>
<args>
<arg>-XtoString</arg>
<arg>-Xequals</arg>
<arg>-XhashCode</arg>
<arg>-Xinheritance</arg>
<arg>-Xcopyable</arg>
<arg>-XenumValue</arg>
<arg>-Xannotate</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.9.5</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</plugin>
</plugins>
</configuration>
</execution>
</executions>
<configuration>
<catalog>target/classes/catalog.cat</catalog>
<strict>false</strict>
<extension>true</extension>
<schemaIncludes>
<include>*.xsd</include>
</schemaIncludes>
<bindingIncludes>
<include>*.xjb</include>
</bindingIncludes>
<generatePackage>com.jeff.bean</generatePackage>
<args>
<arg>-XtoString</arg>
<arg>-Xequals</arg>
<arg>-XhashCode</arg>
<arg>-Xinheritance</arg>
<arg>-Xcopyable</arg>
<arg>-XenumValue</arg>
<arg>-Xannotate</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.9.5</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</plugin>
</plugins>
</configuration>
</plugin>
我可能接近这个错误,也许我需要看看org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
这显示了 JDK 和 JDK 8 运行之间的区别。 在左侧,它似乎忽略了 binding.xjc 文件,因此不知道枚举大小。
【问题讨论】:
-
0.6.4是 JAXB2 Basics 的一个非常旧的版本。只是说。 -
请在此处提交带有示例项目的 PR:github.com/highsource/maven-jaxb2-plugin-support 在 j/jdk7 下。 JAXB 版本之间存在差异,但maven-jaxb2-plugin 通常使用与其捆绑的特定版本。由于 JDK 版本的差异......令人惊讶,我愿意看看它。 免责声明:我是
maven-jaxb2-plugin和 JAXB2 Basics 的作者。 -
顺便问一下,你确定这不是 JDK 9 相关的吗?我遇到了未在 JDK 9 上处理的绑定问题。这已在 maven-jaxb2-plugin 的
0.14.0版本中得到修复。
标签: java java-8 jaxb java-7 jaxb2