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

Wil*_*ann 3 ant

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

小智 16

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

  <property environment="env" /> 
  <available file="commandname"  
             filepath="${env.PATH}"  
             property="commandname.present"/>
Run Code Online (Sandbox Code Playgroud)


cog*_*mos 1

我能想到的最好方法是将该available任务与if后续目标结合使用。如果您查看该任务页面,您会发现可以检查是否存在某些内容,然后设置属性。例如:

<available file="/path/to/my/file" type="file" property="file.present"/>
Run Code Online (Sandbox Code Playgroud)

然后在目标中你会说类似的话<target name='foo' if='file.present'>

这不会检查可执行权限,但会更接近。如果存在专门检查可执行权限的任务,您仍然可能会将其与if目标中的 组合起来。


原答案

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

<copy todir"/some/target">
   <fileset dir="/some/src"/>
</copy>
Run Code Online (Sandbox Code Playgroud)

有关复制任务的更多用法,请参阅Ant 文档。