JAXB XJC Suppress ObjectFactory & Generate jaxb.index



我的项目中有大量使用 xjc ant 任务生成的类。默认情况下,生成过程会创建一个ObjectFactory.java类。我想知道是否有办法禁止创建对象工厂,而是生成一个jaxb.index文件。

我的理解是,jaxb.index在对象序列化和反序列化方面比ObjectFactory更优化。

我正在使用 Ant 1.10.3JAXB 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。

相关内容

  • 没有找到相关文章

最新更新