ant中的每个文件依赖关系

ant中的每个文件依赖关系,ant,dependencies,Ant,Dependencies,我有一组输入文件,每个文件都经过处理以生成一个输出文件。有一种情况是HibernateXML文件作为输入,java文件作为输出,但这不是我必须处理的唯一情况 在make中,我会设置一个规则,告诉它如何从.hbm.xml文件生成.java文件(对.hbm.xml进行模块化,指定要生成的不同类名),修改单个.hbm.xml文件将触发单个.java文件的生成 我如何在ant中表达依赖关系,以便它只构建过时的.java文件,而不是仅仅因为一个.hbm.xml发生了变化就构建所有这些文件 我正在查看应用和

我有一组输入文件,每个文件都经过处理以生成一个输出文件。有一种情况是HibernateXML文件作为输入,java文件作为输出,但这不是我必须处理的唯一情况

在make中,我会设置一个规则,告诉它如何从.hbm.xml文件生成.java文件(对.hbm.xml进行模块化,指定要生成的不同类名),修改单个.hbm.xml文件将触发单个.java文件的生成

我如何在ant中表达依赖关系,以便它只构建过时的.java文件,而不是仅仅因为一个.hbm.xml发生了变化就构建所有这些文件

我正在查看
应用
最新的
,但还没有看到解决方案…

您看过吗

文档末尾的示例类似于您可以使用的内容:

  <outofdate property="manual.outofdate"
             outputsources="grammer.sources">
    <sourcefiles>
      <fileset dir="${src.grammer}" includes="**/*.y"/>
    </sourcefiles>
    <mapper type="glob" dir="${src.grammer}" from="*.y" to="${gen.grammer}/*.c"/>
    <mapper type="glob" dir="${src.grammer}" from="*.y" to="${gen.grammer}/*.h"/>
    <sequential>
      <shellscript shell="bash">
        cd ${gen.grammer}
        for g in ${grammer.sources}
        do
            gengrammer $g
        done
      </shellscript>
    </sequential>
  </outofdate>

因此,每次在构建中,您都会为每个.hbx.xml文件生成一个新的.java文件,并且因为Ant将更改时间戳视为新的,所以所有.java文件的构建都会被触发。这是正确的吗?这种情况也会发生,但第一步是只生成需要修改的.java文件;我不希望构建做得比它必须做的更多。只是澄清一下,如果源的子集已过期,则名为
outputsources
的属性将设置为仅包含这些源而不是所有源的列表,对吗?对,
outputsources
仅列出比相应目标更新的源。
<property name="ant-contrib.jar" location="..."/>
<taskdef
  resource="net/sf/antcontrib/antlib.xml"
  uri="http://ant-contrib.sourceforge.net"
>
  <classpath>
    <pathelement location="${ant-contrib.jar}"/>
  </classpath>
</taskdef>