首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant / checksum:如何为多个文件生成一个.md5文件(导致md5-file有多行)

Ant / checksum:如何为多个文件生成一个.md5文件(导致md5-file有多行)
EN

Stack Overflow用户
提问于 2015-02-08 00:52:32
回答 2查看 3.5K关注 0票数 2

有没有可能让Ant为几个文件(包括子目录)生成一个.md5文件,从而产生一个包含多行的md5文件(每行都包含一个校验和以及文件名和它的相对路径)?

在过去,我只对单个文件使用Ant校验和任务:

代码语言:javascript
复制
<checksum algorithm="md5" format="MD5SUM" file="${distFile}">

我最近尝试了一下:

代码语言:javascript
复制
<checksum algorithm="md5" format="MD5SUM">
    <fileset dir="." />
</checksum>

但是上面的Ant任务为列出的每个文件生成一个.md5文件。

我的目标是只有一个.md5文件,其中有多行包含校验和和文件名(具有相对路径)。

非常感谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2015-06-16 04:13:39

您可以使用校验和任务为每个文件创建校验和文件,然后使用concat任务将它们合并到一个文件中。

代码语言:javascript
复制
    <checksum algorithm="SHA-256" fileext=".sha256" format="MD5SUM" todir="${dir.cache}/sha/${version}">
        <fileset dir="${dir.release}" />
    </checksum>
    <concat destfile="${dir.release}/DIGEST.sha256sum">
        <fileset dir="${dir.cache}/sha/${version}" />
    </concat>
票数 3
EN

Stack Overflow用户

发布于 2015-02-08 19:06:58

根据Mark对原始问题的评论,我设法将以下ant脚本组合在一起(请注意,至少需要ant-contrib 0.6版):

代码语言:javascript
复制
<for param="file">
    <path>
        <fileset dir="${dist}/." />
    </path>
    <sequential>
        <local name="md5" />
        <local name="relativeFile" />

        <checksum file="@{file}" algorithm="md5" format="MD5SUM" property="md5"/>
        <property name="relativeFile" location="@{file}" basedir="${dist}" relative="true" />
        <echo file="checksums.md5" append="true">${md5} *${relativeFile}
</echo>
    </sequential>
</for>

此脚本迭代(for) dist目录中的路径/文件集(所有分发文件,因此文件已准备好部署),并使用<checksum../>任务计算每个文件的校验和,将MD5散列写入md5

请注意,通过<local... />任务将md5relativeFile设置为“本地”非常重要,这样就可以在该for循环中重新设置该属性。

<property name="relativeFile"... />任务根据我的dist目录(${dist})将绝对文件路径(@{file})转换为相对路径。

最后,<echo... />任务将md5散列和md5格式的文件名写入/附加到"checksums.md5“文件(请注意,您的脚本应该在for循环之前删除该文件,因为echo确实附加了新条目(append="true")。

代码的缩进是正确的:最后的</echo>必须是“深度0”缩进,这样就不会有空格或制表符写入输出文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28384784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档