【问题标题】:How to print the exec error code using ANT如何使用 ANT 打印 exec 错误代码
【发布时间】:2019-10-23 05:53:55
【问题描述】:

我有我的 ANT 文件,它使用 exec 任务使用 cURL 创建 Jenkins 作业。无论exec任务是成功还是失败,jenkins构建都会成功。所以我尝试在 exec 中使用 resultproperty 并尝试打印结果,但它只返回 0。

<exec executable="curl" resultproperty="MyExecResult" failonerror="false">
            <arg value="-k" />
            <arg value="-X" />
            <arg value="GET" />
            <arg value="<MyJenkinsURL>config.xml" />
            <arg value="-o" />
            <arg value="<MyPath>\GET\config.xml" />
            <arg value="-u" />
            <arg value=":" />
            <arg value="--ntlm" />
        </exec>
<echo>MyExecResult-GET ::: ${MyExecResult}</echo>

如何在这种情况下打印 resultproperty 值以获取错误代码。请提供输入。谢谢!

【问题讨论】:

  • 如果 resultproperty 返回 0,这意味着您的 exec 没有失败。我不确定你想在这里做什么。当exec 失败时,您是否希望您的构建失败?如果是,设置failonerror="false"
  • 我想在 exec 失败时使构建失败,即使在设置 failonerror="true" 后它对我也不起作用。这就是为什么我试图获取错误代码,但无法得到它。
  • 听起来你的 curl 命令并没有失败。你能发布你得到的控制台输出吗?
  • 我在执行 cURL 时没有遇到问题。尽管 任务失败,但我得到了以下任务,就像它成功一样:% Total % Received % Xferd Average Speed Time Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--: -- --:--:-- --:--:-- 0 100 381 100 381 0 0 381 0 0:00:01 --:--:-- 0:00:01 6047 100 11816 0 11816 0 0 11816 0 --:--:-- --:--:-- --:--:-- 11816 200
  • 我还是一头雾水。我没有看到任何失败的证据。问题是下载的 config.xml 的内容不是你所期望的吗? (即 curl 写入 config.xml 但它只是内部的授权失败消息?)

标签: http jenkins curl ant exec


【解决方案1】:

你必须使用 erroproperty 属性,见Ant manual exec task

errorproperty 属性的名称,其中的标准错误 该命令应该被存储。从 Ant 1.6 开始

【讨论】:

  • 使用错误属性无法正常工作。我可以用其他方法吗?如何使用 groovy 获取 curl 命令的错误代码?
  • 从来没有遇到过任何关于 ant exec 和获取 exitcode、stdout、stderr 的问题。 cURL 使用错误输出流进行进度输出,见mrhaki.blogspot.com/2008/12/…
  • @Dinesh 由于 cURL 正在使用 stderr 进行进度,因此使用 ecex 任务的所有属性来捕获所有通道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 2014-01-08
  • 1970-01-01
相关资源
最近更新 更多