【发布时间】:2013-10-18 09:08:45
【问题描述】:
什么是用于 JAXB 的 package-info.java 的替代品。 我不希望项目中的此类。jaxb 跳过此的替代设置是什么? 谢谢。
【问题讨论】:
-
为什么?有什么问题?
-
我只是想了解为什么它是必要的?
什么是用于 JAXB 的 package-info.java 的替代品。 我不希望项目中的此类。jaxb 跳过此的替代设置是什么? 谢谢。
【问题讨论】:
确实没有必要。如果你想避免 jaxb 在你的代码中加入一些奇怪的东西,比如 ns2 或其他什么,你可以使用它。 如果你不喜欢在你的 xml 中看到奇怪的东西,你应该将 package-info.java 放在你的包中以清楚地定义一些东西:例如命名空间。
这是我的意思的一个明显例子Jaxb generated xml - problem with root element prefix
【讨论】:
如果您一直在使用 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>
【讨论】:
如果你使用 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
【讨论】: