【问题标题】:Ant execute a command蚂蚁执行命令
【发布时间】:2013-10-22 18:41:48
【问题描述】:

我使用 Silk4J,在我的构建中,我必须启动代理。我使用的命令是:

<exec spawn="true" executable="${env.OPEN_AGENT_HOME}/agent/openAgent.exe" />

它给了我这个错误

The ' characters around the executable and arguments are not part of the command. 

我需要改变它吗?

【问题讨论】:

    标签: ant exec


    【解决方案1】:

    该消息并不表示错误。

    -v-verbose-d-debug 选项被赋予Ant 时,&lt;exec&gt; 任务输出它正在执行的命令以及消息:

     [exec] Current OS is Windows 7
     [exec] Executing 'cmd' with arguments:
     [exec] '/c'
     [exec] '@for %a in (C:\src\ant\ant-dir-file-local) do @echo %~ta'
     [exec]
     [exec] The ' characters around the executable and arguments are
     [exec] not part of the command.
     [exec] 10/23/2013 02:36 AM
    

    分解上面的例子...

     [exec] Executing 'cmd' with arguments:
                      ^   ^ 
     [exec] '/c'
            ^  ^
     [exec] '@for %a in (C:\src\ant\ant-dir-file-local) do @echo %~ta'
            ^                                                        ^
    

    在这种情况下,每个 ^ 上方的单引号 (') 不是命令的一部分。 Ant 将可执行文件名称和每个参数用单引号括起来,以明确什么是命令的一部分,什么不是。当&lt;exec&gt; 未按预期运行时,Ant 这样做是为了帮助用户调试他们的 Ant 脚本。该消息仅供参考。

    【讨论】:

    • 好的,但为什么会出现此错误:可执行文件和参数周围的 ' 字符不是命令的一部分。并且构建完成而不执行测试运行?!?在 OpenAgent 之后,它应该执行这个:
    • /target>
    • 同样,这是一条信息性消息,而不是错误。要了解测试未运行的原因,请使用完整的 Ant 脚本和使用“-verbose”选项运行 Ant 时从 Ant 获得的输出创建一个新问题。
    【解决方案2】:

    最好将记录的条目用单引号括起来,这样如果条目为空,您仍然可以看到它,例如:

    用户''没有密码

    否则你会看到:

    没有用户密码

    这是误导。 在这种情况下,它只会通知您报价只是出于这个原因而不是记录数据的一部分。我认为这句话有点令人困惑,因为否定形式“不是命令的一部分”看起来有问题......

    【讨论】:

      【解决方案3】:

      这纯粹是提供信息。它表明您在上面看到的撇号 (') 符号实际上不在已使用的命令中。 它只是“引用”您在命令中使用的字符串标记。

      例子:

       [exec] Current OS is Windows 10
       [exec] Output redirected to property: git.timestamp
       [exec] Executing 'cmd.exe' with arguments:
       [exec] '/c'
       [exec] 'git'
       [exec] 'show'
       [exec] '-s'
       [exec] '--format=%ct'
       [exec]
       [exec] The ' characters around the executable and arguments are
       [exec] not part of the command.
      

      这说明你在cmd里面使用了/c git show -s --format=%ct,从'/c'可以看出,'git' 标记。它只是告诉您忽略 ' 符号。它实际使用的是链式的git、show、-ss等token,形成一个完整的命令。

      【讨论】:

        猜你喜欢
        • 2019-01-09
        • 1970-01-01
        • 1970-01-01
        • 2013-10-11
        • 2015-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-06
        相关资源
        最近更新 更多