我希望有人遇到过这个问题,也许可以解释一下。
我有一个xml架构和一个ant构建文件。当我在Windows上运行ant而不是Mac时,输出.java文件有所不同,即使我使用相同的jaxb-xjc.jar进行xml编译。 Windows方面将属性的“getter”方法命名为“getX”。 Mac方面想要将它们命名为“isX”。之前有人经历过这样的事情和/或有解决方案吗?这在Windows Vista和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'方法。它们是布尔属性,如果未指定则具有默认值。
答案 0 :(得分:0)
从我得到的回复中,我能够谷歌寻求解决方案。显然这个命名不一致和另一个(一个getter返回一个原语,但是setter只接受对象)很明显,由于规范中的一些不一致,旧的xml编译器很偶然。
通过转到http://jaxb.java.net/并获得新的jaxb-impl.jar&amp; JAXB的xjc.jar。我下载并运行了jaxb.jar文件下载,它创建了所需的罐子。