【问题标题】:Check if executable command exists using ant使用ant检查可执行命令是否存在
【发布时间】:2016-02-03 17:47:08
【问题描述】:

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

【问题讨论】:

    标签: ant


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!这正是我想要的
    【解决方案2】:

    我能想到的最好方法是在后续目标中使用available 任务和if。如果你看一下task page,你会发现你可以检查是否存在某些东西,然后设置一个属性。例如:

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

    然后在target 中你会说类似&lt;target name='foo' if='file.present'&gt;

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


    原始答案

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

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

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

    【讨论】:

    • "cp" 只是我选择的一个随机命令作为示例,抱歉造成混淆。如果我问这个答案是正确的,因为我打算使用该命令复制文件。
    • 这是一个很好的例子!让我想想。
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2016-04-15
    • 2013-05-31
    • 1970-01-01
    相关资源
    最近更新 更多