java - JAXB 与 Ant : How to make XJCTask respect <depends>

标签 java jaxb xjc

我们将 Jaxb 与不同的架构文件一起使用,其中包括一些公共(public)部分。 为了构建这个,我们使用 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.h 中正确跟踪包含的依赖关系?我只想重新编译 如有必要,绑定(bind),但如果其中一个包含项发生更改,我绝对想重新编译。 (这是目前不起作用的)。

最佳答案

我认为您的 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

关于java - JAXB 与 Ant : How to make XJCTask respect <depends>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997077/

相关文章:

java - 在Swing中设置JComboBox的背景

java - 如何在 iText 中添加无边框表格

java - 遍历 Trie 树

java - 获取通用类型参数的包名称

java - 格式化 XSD 以以特定方式生成字符串数组

java - Gradle Maven Bom 属性

JAXB 解码无效整数

java - 解决jaxb中的循环引用

java - 从 XJC 输出中省略 @XmlSeeAlso

java - 使用 xjc 从 xsd 生成类