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