Я использую JAXB для проекта. привлечение JAXB состоит в том, что он связан с JDK, я должен использовать xjc.exe в командной строке для генерации .java файлов из схемы. Я не могу найти задачу JAXB ant, конечно, есть загрузка на http://jaxb.java.net, однако я хочу использовать JAXB, чтобы входит в JDK, есть ли способ вызвать JAXB из ant, к какому классу вызов xjc.exe?
Как выполнить компилятор JAXB с ANT
Ответ 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>
Ответ 3
Вы не можете найти несколько примеров проектов Ant/JAXB в Основах JAXB2: