XJC:将ant任务从JAXB迁移到JDK 1.6

时间:2012-06-05 13:44:11

标签: ant jaxb tostring jdk1.6 xjc

我们已迁移到Java 1.6,并且作为一部分重新编写了使用旧的xjc ant任务来使用可执行文件的ant任务:Java 1.6中提供的xjc.exe

我们还需要保留较旧的ant任务参数,例如使用commons-lang插件在生成的值对象中生成toString()方法。

早些时候:

<target name="generate_vos" description="Compile all Java source files">
    <echo message="Compiling the schema..." />
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
        <classpath refid="ERPSimulator.classpath"/>
    </taskdef>
    <delete dir="${jaxb.src}" />
    <mkdir dir="${jaxb.src}" />
    <xjc schema="${jaxb.schema}/SOAPClientObjects.xsd" package="xxx.jaxb.vo" destdir="${jaxb.src}">
        <arg value="-Xcommons-lang" />
        <arg value="-Xcommons-lang:ToStringStyle=SIMPLE_STYLE" />
        <produces dir="${jaxb.src}" includes="**/*.java" />
    </xjc>
</target>

现在:

 <target name="generate_vos" description="Compile all Java source files">       
        <delete dir="${jaxb.src}" />
        <mkdir dir="${jaxb.src}" />
        <echo message="Compiling the schema..." />
         <exec executable="xjc">
             <arg value="-extension"/>
             <arg value="-d"/>
             <arg value="${jaxb.src}"/>
             <arg value="-p"/>
             <arg value="xxxx.jaxb.vo"/>
             <arg value="${jaxb.schema}/SOAPClientObjects.xsd"/>        
             <arg value="-Xcommons-lang"/>
             <arg value="-Xcommons-lang:ToStringStyle=SIMPLE_STYLE" />
         </exec>
</target>

但是,运行新任务会导致错误,因为-Xcommons *插件在此版本中未进行转发。 我已经明确地为路径中的commons-lang toString插件设置了插件jar文件而没有运气。

知道如何让XJC.exe为生成的对象生成toString()方法吗?

谢谢!

0 个答案:

没有答案