【问题标题】:Jenkins not passing a buildInfo property file to gradleJenkins 没有将 buildInfo 属性文件传递给 gradle
【发布时间】:2016-05-16 00:28:52
【问题描述】:

今天早上,在artifactoryPublish 任务中,我们所有的 Jenkins 构建都失败了,消息如下:

Execution failed for task ':artifactoryPublish'.
> Context URL cannot be empty

我重建的任何项目都会发生这种情况,即使是几个月内没有改变的项目。

当我比较成功和失败构建之间的控制台日志时,弹出的一个项目是成功构建中这样的一行:

[buildinfo] Properties file found at '/tmp/buildInfo4135847729346651998.properties'

对于失败的构建不存在。我的 /tmp 目录确实包含失败构建的 buildInfo*.properties 文件,但从控制台输出看来,该文件未传递给 Gradle。属性文件包含一个 contextUrl 属性,这让我相信我的构建中缺少的文件是问题所在。

谁能提供一些关于我的配置或环境中可能发生的变化导致此问题的启发?

【问题讨论】:

  • 我看到实现我们的新构建系统的行为完全相同,但无法找出原因。任何更新将不胜感激。
  • 我不得不在短期内转向其他事情,但计划很快再做。我的安装落后了几个小版本,所以我要做的第一件事是确保它和插件是最新的。不过,我不确定那会做什么,因为据我所知,工作和不工作之间没有任何变化。

标签: jenkins gradle artifactory


【解决方案1】:

因此,在与看似相同的问题斗争了一段时间后,我发现禁用 Gradle 守护程序(使用 --no-daemon)解决了我的问题。

我还在插件 JIRA 系统上创建了一个问题,以了解是否有必要禁用守护程序,并在我收到回复时更新此答案。

【讨论】:

  • 感谢@PinkyNoBrain 的建议。当我回到办公室时,我会试试看。您是否必须为每个作业关闭守护程序,或者它们是适用于所有 Gradle 构建的中心位置?
  • 我意识到我可以在 $HOME/.grade/gradle.properties 中设置org.gradle.daemon = false。然而,真正奇怪的是,我决定在关闭守护程序之前重建我的项目,因为我已经有几天没有构建它们了。这一次,它们都构建成功,没有文件更改,我也没有明显的配置更改。
  • @Jeff French 是的,这实际上是有道理的。在几天没有构建之后,您的 Gradle 守护程序将过期。当它再次为新构建启动时,它将被赋予这个新构建的属性,因此它们会成功。但是,一旦运行,它不会为后续构建传递更新的属性,因此它们会失败。无论如何,这就是我从构建服务器上的行为推断出来的。
  • 感谢您追踪此事,@PinkyNoBrain!
猜你喜欢
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多