Сгенерируйте контрольную сумму для каталогов с помощью команды Ant build - PullRequest
3 голосов
/ 22 декабря 2011

Я попытался сгенерировать для каталога, используя .

Я попробовал приведенную ниже команду, но она рекурсивно генерирует внутри каждой папки для каждого файла.

<target name="default" depends="">
    <echo message="Generating Checksum for each environment" />
    <checksum todir="${target.output.dir}" format="MD5SUM" >
        <fileset dir="${target.output.dir}" />
    </checksum>
</target>

Я просто хочу сгенерировать один checksum для определенного каталога, используя команду Ant. Как мне это сделать?

1 Ответ

3 голосов
/ 22 декабря 2011

Вы хотите использовать атрибут totalproperty.Согласно документации это свойство will hold a checksum of all the checksums and file paths.

например

<target name="hash">
  <checksum todir="x" format="MD5SUM" totalproperty="sum.of.all">
    <fileset dir="x"/>
  </checksum>
  <echo>${sum.of.all}</echo>
</target>

Некоторые другие общие замечания.

  • Это не идемпотент,Каждый раз, когда вы запускаете его, вы получаете новое значение, потому что оно включает предыдущий хеш-файл в новый хеш (а затем записывает новый хеш-файл).Я предлагаю вам поменять атрибут todir, чтобы он указывал на другое место
  • Хорошей идеей будет назвать ваши цели осмысленно.См. эту замечательную статью Мартина Фаулера о некоторых идеях именования
  • Вам не нужен атрибут depends, если нет зависимости.
...