我希望有人经历过这个问题,也许可以有所启发。
我有一个 xml 架构和一个 ant 构建文件。当我在 Windows 和 Mac 上运行 ant 时,输出 .java 文件会有所不同,即使我使用相同的 jaxb-xjc.jar 来进行 xml 编译。Windows 端将属性的“getter”方法命名为“getX”。Mac 方面想将它们命名为“isX”。有没有人经历过这样的事情和/或有解决方案?这在 Windows Vista 和 7 以一种方式执行此操作与 Mac OSX 10.6 和 10.7(在 Mac OSX 10.8 上未经测试)以另一种方式执行此操作之间是一致的。
- - 编辑 - -
我将附上 ant build.xml 文件中的一些代码。
告诉它 xjc 是什么。
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
<classpath refid="classpath"/>
</taskdef>
这是“实际”编译:
编译自动机模式
<echo>Compiling old automaton schema</echo>
<xjc schema="${oldxml-schema}" destdir="${src.dir}" package="${oldxml.package}">
<produces dir="${oldxml-gen.dir}" includes="**/*.java"/>
</xjc>
<echo>Compiling the plugin schema</echo>
<mkdir dir="${plugin-gen.dir}" />
<xjc schema="${plugin-schema}" destdir="${src.dir}" package="${plugin.package}">
<produces dir="${plugin-gen.dir}" includes="**/*.java"/>
</xjc>
<echo>Compiling the pluginDesumaSide schema</echo>
<mkdir dir="${pluginDesumaSide-gen.dir}" />
<xjc schema="${pluginDesumaSide-schema}" destdir="${src.dir}" package="${pluginDesumaSide.package}">
<produces dir="${pluginDesumaSide-gen.dir}" includes="**/*.java"/>
</xjc>
</target>
所有目标(我的意思是像 ${} 这样提到的任何目标)都已定义,并且每个链接和编译都正确,除了 Mac 将“getter”方法命名为变量的“is”方法。它们是布尔属性,如果未指定,则具有默认值。