Когда я компилирую свой XSD с JDK 8, я получаю ожидаемый вывод.
Когда я компилирую свой XSD с JDK 7, кажется, что он не читает мой файл binding.xjb.
IЯ уверен, что это связано с одним из многих дефектов, исправленных между jaxb-v2
Примечания к выпуску: JAXB
Может кто-нибудь помочь мне разобраться, как, если возможно, обновитьверсия JAXB RI, используемая JDK?
Я строю с 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 и поэтому не знает размер перечислений.
Мы также видим, что сгенерированный класс Java имеет разные типы.
Кроме того, он генерирует классы адаптеров в JDK 8, но не в JDK 7.