如何在xjc命令行上使用JAXB扩展

大卫·卡尔(David M.Karr)

我正在这里处理相关问题,但我有一个单独的问题。也许这都是同一问题的一部分,但看起来却有所不同。

由于存在通过Ant任务和Facade运行XJC的问题,我现在尝试使用JDK的命令行“ xjc”工具运行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

这些参数与我发送给“ cxf-jaxb-plugin” Maven插件的参数基本相同,该参数已经使用了很长时间。不幸的是,此“ xjc”命令行失败并显示:

无法识别的参数-Xxew

这里可能出什么问题了?

Lexicore

抱歉,这是行不通的。

XJC插件必须扩展com.sun.tools.xjc.Plugin该类。但是JDK中包含的XJC可以作为xjc二进制文件(例如xjc.exe在Windows下)重新包装com.sun.tools.xjc-> com.sun.tools.internal.xjc

因此,在普通命令行中,xjc您没有com.sun.tools.xjc.Plugin类(XJC插件扩展该类),而是类com.sun.tools.internal.xjc.Plugin

因此,CLIxjc不适用于XJC插件。仍然有效的唯一插件是重新包装的插件。(例如com.sun.tools.internal.xjc.addon.code_injector.PluginImpl。)

如果您想要命令行,然后尝试找出java -cp ...参数,这是使其与XEW或JAXB2-Basics等第三方XJC插件一起使用的唯一方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章