我的项目中有大量使用SELECT
ant任务生成的生成类。默认情况下,生成过程会创建xjc
类。我想知道是否有办法抑制ObjectFactory的创建,而是生成ObjectFactory.java
文件。
我的理解是jaxb.index比ObjectFactory更适合于对象序列化&反序列化。
我正在使用 Ant 1.10.3 & JAXB 2.3.0
感谢。
答案 0 :(得分:1)
首先警告:确保你知道你做了什么。 ObjectFactory
有一些jaxb.index
没有的功能(如支持替换组)。因此,抑制ObjectFactory
可能导致无法解析有效的XML。
现在,假设你知道你做了什么,怎么做。
JAXB2 Basics包含一个生成jaxb.index
的“JAXB索引”插件。 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。