扩展 Apache Ant exec 任务中的参数
Expanding parameters in Apache Ant exec task
我有一个构建需要一个任务来启动一个进程,一个任务在结束时终止它。
我有一个包含进程 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>
但两者都被转换为字符串文字,因此导致:
[exec] kill: failed to parse argument: '$(cat process-file)'
有没有办法让蚂蚁展开这些?或者完全不同的途径来实现这一点?
您可以使用 Ant 的 loadfile
任务将文件内容读入 属性。
<loadfile srcFile="process-file" property="pid">
<filterchain>
<striplinebreaks/>
</filterchain>
</loadfile>
<exec executable="kill">
<arg value="${pid}"/>
</exec>
编辑:添加了过滤器链来处理额外的空白
我有一个构建需要一个任务来启动一个进程,一个任务在结束时终止它。
我有一个包含进程 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>
但两者都被转换为字符串文字,因此导致:
[exec] kill: failed to parse argument: '$(cat process-file)'
有没有办法让蚂蚁展开这些?或者完全不同的途径来实现这一点?
您可以使用 Ant 的 loadfile
任务将文件内容读入 属性。
<loadfile srcFile="process-file" property="pid">
<filterchain>
<striplinebreaks/>
</filterchain>
</loadfile>
<exec executable="kill">
<arg value="${pid}"/>
</exec>
编辑:添加了过滤器链来处理额外的空白