使用ant检查是否存在可执行命令

时间:2013-05-15 04:14:38

标签: ant

是否可以检查命令是否作为ant任务的一部分存在。例如,我想确保“yasm”命令作为ant任务的一部分存在。这可能吗?如果是这样,你能提供一个例子吗?

2 个答案:

答案 0 :(得分:16)

以下习惯用法可以在环境的PATH中找到可执行文件。

  <property environment="env" /> 
  <available file="commandname"  
             filepath="${env.PATH}"  
             property="commandname.present"/>

答案 1 :(得分:1)

我能想到的最佳方法是在后续目标中使用available任务与if相结合。如果您查看task page,您会看到可以查看是否存在某些内容然后设置属性。例如:

<available file="/path/to/my/file" type="file" property="file.present"/>

然后在target中你会说<target name='foo' if='file.present'>

这不会检查可执行权限,但会更加接近。如果存在特定于检查可执行权限的任务,您仍可能将其与目标中的if组合。

<小时/> 原始答案

最好使用ant copy任务,而不是尝试自己执行cp。这使其平台保持独立。

<copy todir"/some/target">
   <fileset dir="/some/src"/>
</copy>

Ant documentation for the copy task上的更多用法。