web-dev-qa-db-ja.com

ANTからJAXBコンパイラを実行する方法

プロジェクトでJAXBを使用しています。 JAXBの魅力は、JDKにバンドルされていることです。私は、コマンドラインでxjc.exeを使用して、スキーマから.Javaファイルを生成してきました。 JAXB antタスクが見つからないようです。ダウンロードは http://jaxb.Java.net にありますが、JDKにバンドルされているJAXBを使用したいのですが。 antからJAXBを呼び出す方法xjc.exeはどのクラスを呼び出しますか?

17
ams
<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つは、antファイルがEclipse内で機能し、JDKへのパス名を含める必要がないことでした。これにより、ファイルはオペレーティングシステム間で移植可能になります。私は、tools.jarがインストールされたJRE設定オプションを介してクラスパスに含まれていると想定しています。

19
ams

ここに役立つリンクがあります:

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>
13
bdoughan

JAXB2BasicsにいくつかのサンプルAnt/JAXBプロジェクトがありません。

http://confluence.highsource.org/display/J2B/Latest+Release

1
lexicore