JAXB with Ant:如何使XJCTask尊重<depends> </depends>

时间:2011-08-09 13:41:35

标签: java jaxb xjc

我们正在使用包含一些常见部分的不同模式文件的Jaxb。 为了构建它,我们使用了JAXB发行版中的Ant XJCTask:

<xjc classpath="bin" removeOldOutput="yes" schema="main-schema.xsd" target="src" extension="true">
        <arg value="-no-header"/>
        <depends dir=".">
            <filename name="some/dir/included1.xsd"/>
            </depends>
        <produces dir=".">
            <include name="some/package/dir/*.java"/>
            </produces>
    </xjc>

但显然,依赖没有影响,因为人们可以看到运行ant -verbose:

      [xjc] Checking timestamp of /local0/mginkel/workspace/main-schema.xsd
  [xjc] Checking timestamp of /local0/mginkel/workspace/some/package/dir/Generated1.java
  [xjc] Checking timestamp of /local0/mginkel/workspace/some/package/dir/Generated2.java

有没有办法在ant中正确跟踪包含依赖项。我只想重新编译 必要时绑定,但我肯定想重新编译其中一个包含已更改。 (这是目前无效的。)

1 个答案:

答案 0 :(得分:0)

我认为您的dir设置错误。这是我们在工作中使用的那个(它适用于我们):

<xjc schema="${xsd.location}/eviction.xsd" destdir="${src}"
  package="com.onsitemanager.eviction.schema">
  <produces dir="${src}/com/onsitemanager/eviction/schema" includes="*.java"/>
</xjc>

(不要过于担心${xsd.location}${src}的价值,只要它们对您存储.xsd文件和源的位置的设置是明智的。文件,分别。)

值得注意的是dir是输出.java文件的目录,而includes只是*.java