8

ここで関連する問題に取り組んでいますが、別の質問があります。おそらくそれはすべて同じ問題の一部ですが、異なるようです。

Ant タスクとファサードを介して 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

ここで何が問題なのですか?

4

1 に答える 1

8

これは機能しません。申し訳ありません。

XJC プラグインはcom.sun.tools.xjc.Pluginクラスを拡張する必要があります。xjcただし、JDK に含まれており、バイナリとして利用できる XJC ( xjc.exeWindows など)は再パッケージ化されています: com.sun.tools.xjc-> com.sun.tools.internal.xjc.

したがって、通常のコマンド ラインでは、 (XJC プラグインが拡張する) クラスxjcはありませんが、.com.sun.tools.xjc.Plugincom.sun.tools.internal.xjc.Plugin

そのため、CLIxjcは XJC プラグインでは機能しません。まだ機能する唯一のプラグインは、同様に再パッケージ化されたものです。(例. com.sun.tools.internal.xjc.addon.code_injector.PluginImpl)

コマンドラインが必要な場合はjava -cp ...、パラメーターを見つけようとします。これが、XEW や JAXB2-Basics などのサードパーティの XJC プラグインで動作させる唯一の方法です。

于 2015-01-26T07:40:54.077 に答える