How to execute the JAXB compiler from ANT

混江龙づ霸主 提交于 2019-11-27 22:07:29

问题


I am using JAXB on a project. the attraction of JAXB is that it is bundled with the JDK, I have been to use xjc.exe on the command line to generate the .java files from a schema. I can't seem to find the JAXB ant task, sure there is a download at http://jaxb.java.net however i want to use the JAXB that is bundled into the JDK is there some way to call JAXB from ant what class does the xjc.exe call on?


回答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>

Just went hunting in the tools.jar and found the XJCFacade.class in com.sun.tools.internal tested the above code it works it produces the output as xjc.exe It seems that XJC.exe calls this code com.sun.tools.internal.xjc.XJCFacade

One of my key requirements was that the ant file had work within eclipse without having to include a path name to the JDK that way the file would be portable across operating systems. I am assuming that tools.jar is included on the classpath via the installed JRE preferences options.




回答2:


Here is a helpful link:

  • https://jaxb.java.net/nonav/2.0.2/docs/xjcTask.html

Java SE 6 does not ship the Ant task (see 7.1.3):

  • https://jaxb.java.net/guide/Migrating_JAXB_2_0_applications_to_JavaSE_6.html

Essentially they do the following:

<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:


You cant find several sample Ant/JAXB projects in JAXB2 Basics:

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



来源:https://stackoverflow.com/questions/3630474/how-to-execute-the-jaxb-compiler-from-ant

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!