代码之家  ›  专栏  ›  技术社区  ›  Steve

JAXB-XJC抑制ObjectFactory并生成JAXB。指数

  •  2
  • Steve  · 技术社区  · 6 年前

    我的项目中有大量生成的类,这些类是使用 xjc ant任务。默认情况下,生成过程会创建 ObjectFactory.java 班我想知道是否有一种方法可以禁止创建ObjectFactory,而是生成 jaxb.index 文件

    我的理解是jaxb。索引比ObjectFactory更适合对象序列化;反序列化。

    我在和 Ant 1.10.3 & JAXB 2.3.0

    谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   lexicore    6 年前

    首先是一个警告:确保你知道自己在做什么。 ObjectFactory 具有一些功能(如支持替换组),这些功能 jaxb.index 没有。所以正在抑制 对象工厂 可能导致无法解析有效的XML。

    现在,假设你知道自己在做什么,怎么做。

    JAXB2 Basics 包括一个“JAXB索引”插件,该插件生成 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>
    

    抑制 对象工厂 ,只需删除生成的文件。

    免责声明: 我是 JAXB2-Basics .我不确定它是否适用于JAXB 2.3.0。