【问题标题】:I dont want package-info.java while using JAXB?使用 JAXB 时我不想要 package-info.java?
【发布时间】:2013-10-18 09:08:45
【问题描述】:

什么是用于 JAXB 的 package-info.java 的替代品。 我不希望项目中的此类。jaxb 跳过此的替代设置是什么? 谢谢。

【问题讨论】:

  • 为什么?有什么问题?
  • 我只是想了解为什么它是必要的?

标签: java jaxb2


【解决方案1】:

确实没有必要。如果你想避免 jaxb 在你的代码中加入一些奇怪的东西,比如 ns2 或其他什么,你可以使用它。 如果你不喜欢在你的 xml 中看到奇怪的东西,你应该将 package-info.java 放在你的包中以清楚地定义一些东西:例如命名空间。

这是我的意思的一个明显例子Jaxb generated xml - problem with root element prefix

【讨论】:

  • 很高兴!明白了。谢谢
【解决方案2】:

如果您一直在使用 xjc 命令生成 JaxB 对象。使用-npa 选项可以达到目的。

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/xjc.html

这也兼容Java 11,当使用maven插件cxf-xjc-plugin

这是一个添加参数的示例 https://cxf.apache.org/cxf-xjc-plugin.html

<xsdOption>
    <xsd>${basedir}/.../yourXSD.xsd</xsd>
    <packagename>your.package.name</packagename>
    <extensionArgs>
        <extensionArg>-npa</extensionArg>
        <extensionArg>-no-header</extensionArg>
    </extensionArgs>
</xsdOption>

【讨论】:

    【解决方案3】:

    如果你使用 no.nils.wsdl2java gradle 插件 https://github.com/nilsmagnus/wsdl2java

    你最好添加-xjc-npa这样的选项:

    wsdl2java {
        ...
        wsdlsToGenerate = [
                [
                        '-xjc-npa',
                    ...
                ]
        ]
    }
    

    完整的选项列表在这里:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/xjc.html

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2021-10-24
      • 2011-04-08
      • 2018-11-17
      相关资源
      最近更新 更多