Dav*_*arr 7 java jaxb jaxb-xew-plugin
我在这里正在处理相关问题,但我有一个单独的问题.也许这是同一个问题的一部分,但似乎有所不同.
由于我通过Ant任务和外观运行XJC的问题,我现在正尝试使用JDK中的命令行"xjc"工具运行它.
与原始问题一样,我正在尝试使用"Element Wrapper"和"Fluent API"扩展,因此我的命令行如下:
xjc -extension -classpath "lib/jaxb-fluent-api-2.1.8.jar;lib/jaxb-xew-plugin-1.4.jar" -Xxew -summary target/xew-summary.txt -instantiate lazy -Xfluent-api schema/serviceCallResults.xsd
Run Code Online (Sandbox Code Playgroud)
这些基本上与我发送给"cxf-jaxb-plugin"Maven插件的参数相同,该插件已经工作了很长时间.不幸的是,这个"xjc"命令行失败了:
无法识别的参数-Xxew
这可能有什么问题?
抱歉,这只是行不通.
XJC插件必须扩展com.sun.tools.xjc.Plugin类.但是包含在JDK中并以xjc二进制形式提供的XJC (例如xjc.exe在Windows下)被重新打包:com.sun.tools.xjc- > com.sun.tools.internal.xjc.
所以在vanilla命令行中xjc你没有com.sun.tools.xjc.Plugin类(XJC插件扩展)但是com.sun.tools.internal.xjc.Plugin.
因此CLI xjc不适用于XJC插件.唯一仍然有效的插件是那些重新打包的插件.(例如com.sun.tools.internal.xjc.addon.code_injector.PluginImpl)
如果你想要命令行然后尝试找出java -cp ...参数,这是使它适用于第三方XJC插件如XEW或JAXB2-Basics的唯一方法.