使用Ant构build命令为目录生成校验和

我试图使用ant生成目录的校验和 。

我已经尝试了下面的命令,但是它为每个文件在每个文件夹内recursion地生成。

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

我只想使用Ant命令为特定目录生成一个checksum 。 我怎么做?

你想使用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属性来指向别处
  • 有意义地命名目标是一个好主意。 请参阅Martin Fowler撰写的关于一些命名想法的伟大文章
  • 如果没有依赖关系,则不需要depends属性。