java - JAXB XJC 抑制 ObjectFactory 并生成 jaxb.in​​dex

标签 java ant jaxb xjc

我的项目中有大量使用 xjc ant 任务生成的生成类。默认情况下,生成过程会创建一个 ObjectFactory.java 类。我想知道是否有一种方法可以抑制 ObjectFactory 的创建,而是生成 jaxb.in​​dex 文件。

我的理解是,对于对象序列化和反序列化,jaxb.in​​dex 比 ObjectFactory 更优化。

我正在使用 Ant 1.10.3JAXB 2.3.0

谢谢。

最佳答案

首先警告:确保您知道自己在做什么。 ObjectFactory 具有 jaxb.in​​dex 所没有的一些功能(例如支持替换组)。因此,抑制 ObjectFactory 可能会导致无法解析有效的 XML。

现在,假设您知道自己在做什么、如何做。

JAXB2 Basics包括一个“JAXB Index”插件,它生成jaxb.in​​dex。 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.in​​dex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49908220/

相关文章:

java - 通过显式指定类型见证来调用类构造函数

java - 终止无响应的线程

使用 Proguard DX SimException 本地 0000 : invalid 构建 Android

java - 使用 JAXB 保持 DRY

java - 未编码类的属性 setter 中的 jaxb 异常管理

java - JAXB - Beans 到 XSD 还是 XSD 到 beans?

java - 在浏览器中预览本地 html 文件

Java:从 Google https 下载网页内容

maven-2 - 构建时的代码格式化

javac -Xlint :overrides not working