是否可以检查命令是否作为ant任务的一部分存在.例如,我想确保"yasm"命令作为ant任务的一部分存在.这可能吗?如果是这样,你能提供一个例子吗?
小智 16
以下习惯用法可以在环境的PATH中的某处找到可执行文件.
<property environment="env" />
<available file="commandname"
filepath="${env.PATH}"
property="commandname.present"/>
Run Code Online (Sandbox Code Playgroud)
我能想到的最好方法是将该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 文档。