Ant中的Checksum任务未按预期工作

问题描述 投票:1回答:1

我正在为一个小的蚂蚁文件/目标而努力:

<project name="test" default="test" basedir=".">
  <property name="out.dir" value="${basedir}/out/"/>
  <property name="apidoc.path" value="${out.dir}test.zip"/>
  <property name="apidoc.input" value="${basedir}/../source//apidocs"/>
  <property name="apidoc.sha" value="TODO"/>

  <target name="test">
    <echo message="Starting target APIDOC"/>

    <zip destfile="${apidoc.path}" basedir="${apidoc.input}" update="no"/>

    <echo message="${apidoc.path}"/>

    <checksum file="${apidoc.path}" algorithm="SHA-256" property="apidoc.sha"/>

    <echo message="Hash wert ist ${apidoc.sha}"/>
  </target>

</project>

目标应(确实)从doc文件夹创建一个zip文件,然后将zip文件的哈希值存储到属性中以备将来使用。但是,哈希值未存储在属性中。我得到的输出如下:

test:
     [echo] Starting target APIDOC
     [echo] /Users/user1/git/project/out/test.zip
     [echo] Hash wert ist TODO

BUILD SUCCESSFUL

有人有主意,这是怎么回事?

ant checksum
1个回答
3
投票

Ant中的属性是不可变的。此行

<property name="apidoc.sha" value="TODO"/>

设置该值,之后将无法更改。

如果您使用-v命令行选项运行ant,您应该会看到类似的消息

Override ignored for property "apidoc.sha"

表明忽略了在<checksum>任务中更改属性值的尝试。

© www.soinside.com 2019 - 2024. All rights reserved.