我们已迁移到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()方法吗?
谢谢!