プロジェクトで JAXB を使用しています。JAXB の魅力は、JDK にバンドルされていることです。私はコマンド ラインで xjc.exe を使用して、スキーマから .java ファイルを生成しました。JAXB ant タスクが見つからないようです。確かにhttp://jaxb.java.netにダウンロードがありますが、JDK にバンドルされている JAXB を使用したいのですが、ant から JAXB を呼び出す方法はありますか?クラスは xjc.exe を呼び出しますか?
29344 次
3 に答える
20
<target name="generate-jaxb-code">
<java classname="com.sun.tools.internal.xjc.XJCFacade">
<arg value="-p" />
<arg value="com.example"/>
<arg value="xsd/sample.xsd" />
</java>
</target>
tools.jar を調べてみたところ、com.sun.tools.internal の XJCFacade.class が見つかりました。上記のコードをテストしたところ、動作し、xjc.exe として出力が生成されました。XJC.exe はこのコードを com.sun.tools と呼んでいるようです。 .internal.xjc.XJCFacade
私の重要な要件の 1 つは、ファイルがオペレーティング システム間で移植できるように、JDK へのパス名を含める必要なく、ant ファイルが Eclipse 内で機能することでした。インストールされたJRE設定オプションを介して、tools.jarがクラスパスに含まれていると想定しています。
于 2010-09-02T21:10:19.333 に答える
14
ここに役立つリンクがあります:
Java SE 6 には Ant タスクが同梱されていません (7.1.3 を参照)。
基本的に、彼らは次のことを行います。
<target name="xjc" description="....">
<exec executable="${jdk.dir}/bin/xjc.exe">
<arg value="-d"/>
<arg value="${src.dir}"/>
<arg value="-p"/>
<arg value="com.mydomain.jaxb"/>
<arg value="${etc.dir}/myschema.xsd"/>
</exec>
</target>
于 2010-09-02T19:38:52.687 に答える
1
JAXB2 Basics には、いくつかのサンプル Ant/JAXB プロジェクトが見つかりません。
于 2010-09-07T15:18:59.227 に答える