我的项目中有大量使用 xjc
ant 任务生成的生成类。默认情况下,生成过程会创建一个 ObjectFactory.java
类。我想知道是否有一种方法可以抑制 ObjectFactory 的创建,而是生成 jaxb.index
文件。
我的理解是,对于对象序列化和反序列化,jaxb.index 比 ObjectFactory 更优化。
我正在使用 Ant 1.10.3 和 JAXB 2.3.0
谢谢。
最佳答案
首先警告:确保您知道自己在做什么。 ObjectFactory
具有 jaxb.index
所没有的一些功能(例如支持替换组)。因此,抑制 ObjectFactory
可能会导致无法解析有效的 XML。
现在,假设您知道自己在做什么、如何做。
JAXB2 Basics包括一个“JAXB Index”插件,它生成jaxb.index
。 Ant 中的用法如下:
<xjc destdir="${basedir}/target/generated-sources/xjc" extension="true">
<arg line="
-Xjaxbindex"/>
<binding dir="${basedir}/src/main/resources">
<include name="**/*.xjb"/>
</binding>
<schema dir="${basedir}/src/main/resources">
<include name="**/*.xsd"/>
</schema>
<!-- Plugins -->
<classpath>
<fileset dir="${basedir}/lib">
<!-- JAXB2 Basics library -->
<include name="jaxb2-basics-plugins-*.jar"/>
</fileset>
</classpath>
</xjc>
要抑制ObjectFactory
,只需删除生成的文件即可。
免责声明:我是 JAXB2-Basics 的作者。我不确定它是否适用于 JAXB 2.3.0。
关于java - JAXB XJC 抑制 ObjectFactory 并生成 jaxb.index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49908220/