Как выполнить компилятор JAXB с ANT - программирование
Подтвердить что ты не робот

Как выполнить компилятор JAXB с ANT

Я использую JAXB для проекта. привлечение JAXB состоит в том, что он связан с JDK, я должен использовать xjc.exe в командной строке для генерации .java файлов из схемы. Я не могу найти задачу JAXB ant, конечно, есть загрузка на http://jaxb.java.net, однако я хочу использовать JAXB, чтобы входит в JDK, есть ли способ вызвать JAXB из ant, к какому классу вызов xjc.exe?

4b9b3361

Ответ 1

<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 и нашел XJCFacade.class в com.sun.tools.internal, протестировав приведенный выше код, который он работает, он выводит результат как xjc.exe Кажется, что XJC.exe вызывает этот код com. sun.tools.internal.xjc.XJCFacade

Одним из моих ключевых требований было то, что файл ant работал в eclipse без необходимости указывать имя пути в JDK таким образом, чтобы файл был переносимым в разных операционных системах. Я предполагаю, что tools.jar включен в путь к классам через установленные параметры предпочтений JRE.

Ответ 2

Вот полезная ссылка:

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>