【问题标题】:Generate Checksum for directories using Ant build command使用 Ant build 命令为目录生成校验和
【发布时间】:2017-10-21 10:56:03
【问题描述】:

我尝试使用 为目录生成

我尝试了以下命令,但它会在每个文件夹中为每个文件递归生成。

<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。 我该怎么做?

【问题讨论】:

    标签: checksum ant windows ant checksum


    【解决方案1】:

    您想使用totalproperty 属性。根据the documentation这个属性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 属性更改为指向其他地方
    • 有意义地命名您的目标是个好主意。见this great article by Martin Fowler for some naming ideas
    • 如果没有依赖关系,则不需要depends 属性。

    【讨论】:

    • 非常感谢 :) 它有效。好吧,还有一个问题。如何使用SHA-256格式?
    • Ant 可能正在暗中调用MessageDigest.getInstance(format)。这意味着您需要安装支持所需格式的安全提供程序。你试过了吗?如果它不起作用,那么您应该在您的 JRE 中安装一个提供程序(例如 bouncycastle.org)。
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2015-12-20
    相关资源
    最近更新 更多