我在项目中使用JAXB。 JAXB的吸引力在于它与JDK捆绑在一起,我一直在命令行上使用xjc.exe从模式生成.java文件。我似乎无法找到JAXB ant任务,确定在http://jaxb.java.net下载但是我想使用捆绑到JDK中的JAXB是否有某种方式从ant调用JAXB xjc的类是什么.exe打电话?
答案 0 :(得分:18)
<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
我的一个关键要求是ant文件在eclipse中工作,而不必在JDK中包含路径名,这样文件可以跨操作系统移植。我假设tools.jar通过已安装的JRE首选项选项包含在类路径中。
答案 1 :(得分:12)
以下是一个有用的链接:
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>
答案 2 :(得分:1)
您无法在JAXB2基础知识中找到几个示例Ant / JAXB项目: