如何使用ANT工具编译xsd文件

时间:2014-05-06 06:09:07

标签: xsd

我有生成java对象的xsd文件列表,但我尝试使用maven构建工具它工作正常。我在pom.xml中使用了插件。我尝试使用ANT构建工具它无法正常工作。我尝试使用谷歌的以下链接,但它无法正常工作。https://jaxb.java.net/jaxb20-ea/docs/xjcTask.html。 在我的项目中,我们使用的是ANT工具。所以请任何人帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

要编译xsd文件,必须先创建模式(.java文件)。为此,您需要添加taskdef,它包含在您提供的链接中。然后你必须使用ant xjc任务。这是一个例子:

<xjc schema="your.xsd.file" target="place.to.put.java.file" package="package.for.the.file.eg.com.soft.anonymous"/>

现在你有了从xsd架构创建的.java文件,bgm.ser和jaxb.properties,放在目标目录中。要编译它们,只需使用ant javac task。 我希望这对你有所帮助。如果没有,请在您尝试编译时指定问题究竟是什么。

1

您可以在许多地方放置taskdef,但最好的地方就在xjc任务之前。因此,例如,您有一个名为xjc.target的目标。在这个目标中你放了taskdef,然后把xjc任务放到javac。

让我解释一下:

  • 请确保在taskdef中设置了正确的文件集目录。它必须是您放置jaxb.jar文件的目录。例如project / lib。
  • 在taskdef之后使用xjc任务。在src中给出一个xsd文件的路径。在目标中写入要放置java文件的路径。例如src / java / files。在包中,您可以为您的课程打包。例如,如果您输入pl.com.website,您的类将转到src / java / pl / com / website。
  • 现在,您有了自己的java文件。要使用它们,您必须使用javac任务编译它们。所以你把src路径放到那些java文件中。在目标中,您将路径放在要编译它们的位置(创建.class文件)。这就是全部。

请逐步尝试,如果您遇到问题,请为我复制粘贴控制台输出。这会帮助我更好地理解你的问题。

<target name="xjc.target">
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
        <classpath>
            <fileset dir="path/to/jaxb/lib" includes="*.jar" />
        </classpath>
    </taskdef>

    <xjc schema="your.xsd.file" target="${java.files.dir}" package="package.for.the.file.eg.com.soft.anonymous"/>

    <javac src="${java.files.dir}" target="${classes}"/>
</target>