如何从 ANT 执行 JAXB 编译器
我在一个项目上使用 JAXB。JAXB的吸引力在于它与JDK捆绑在一起,我一直在使用xjc.exe命令行从模式生成.java文件。我似乎找不到JAXB蚂蚁任务,确定在 http://jaxb.java.net 下载,但是我想使用捆绑到JDK中的JAXB,有没有办法从蚂蚁调用JAXB xjc.exe调用哪个类?
我在一个项目上使用 JAXB。JAXB的吸引力在于它与JDK捆绑在一起,我一直在使用xjc.exe命令行从模式生成.java文件。我似乎找不到JAXB蚂蚁任务,确定在 http://jaxb.java.net 下载,但是我想使用捆绑到JDK中的JAXB,有没有办法从蚂蚁调用JAXB xjc.exe调用哪个类?
<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>
只是在工具中寻找.jar并找到了XJCFacade.class在com.sun.tools.internal中测试了上面的代码,它的工作原理是它产生xjc的输出.exe似乎XJC.exe调用这个代码com.sun.tools.internal.xjc.XJCFacade
我的主要要求之一是 ant 文件可以在 eclipse 中工作,而不必包含 JDK 的路径名,这样文件就可以跨操作系统移植。我假设工具.jar通过已安装的JRE首选项选项包含在类路径中。
这是一个有用的链接:
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>