зависимости от файла в муравье - PullRequest
0 голосов
/ 08 октября 2009

У меня есть набор входных файлов, каждый из которых обрабатывается для создания выходного файла. В одном случае это hibernate xml-файлы в качестве входных данных и java-файлы в качестве выходных, но это не единственный случай, с которым мне приходится иметь дело.

В make я бы настроил правило, чтобы сообщить ему, как сгенерировать файл .java из файла .hbm.xml (по модулю .hbm.xml указать другое имя класса для генерации) и изменить один Файлы .hbm.xml будут запускать сборку одного файла .java.

Как мне выразить зависимости в ant, чтобы он создавал только устаревшие файлы .java, а не все из них только потому, что один .hbm.xml изменился?

Я смотрю на apply и up-to-date, но пока не вижу решения ...

1 Ответ

2 голосов
/ 09 октября 2009

Вы смотрели на задачу устаревания ant-contrib ?

Пример в конце документа выглядит как то, что вы могли бы использовать:

  <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>

Также обратите внимание, что вы можете использовать ant-contrib "for" для задачи в теле задачи outofdate.

Для инициализации ant-contrib сделайте это:

<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>
...