扩展Apache Ant exec任务中的参数

时间:2015-02-08 05:13:07

标签: ant build-process command-substitution

我有一个构建需要一个任务来启动一个进程,一个用于在最后杀死它。

我有一个包含进程ID的文件,但是无法弄清楚如何使ant扩展命令替换以便将该文件的内容传递给kill命令。

我试过了:

<target name="kill process">
    <exec executable="kill">
        <arg value="`cat process-file`"/>
    </exec>

...

<target name="kill process">
    <exec executable="kill">
        <arg value="$(cat process-file)"/>
    </exec>

但两者都转换为字符串litterals,因此导致: [exec] kill: failed to parse argument: '$(cat process-file)'

有没有办法让ant扩展这些?或者完全不同的路线来实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以使用Ant的loadfile任务将文件的内容读入属性。

<loadfile srcFile="process-file" property="pid">
  <filterchain>
    <striplinebreaks/>
  </filterchain>
</loadfile>
<exec executable="kill">
    <arg value="${pid}"/>
</exec>

编辑:添加过滤链以处理额外的空白