【问题标题】:Can't run gradle on jenkins slave无法在詹金斯奴隶上运行 gradle
【发布时间】:2012-02-21 16:34:11
【问题描述】:

我已经配置了一个 jenkins ubuntu slave,我想在它上面运行我的 gradle 构建(使用 gradle 插件)。问题是,在运行 jenkins 构建作业时,我得到:

 $ gradle --no-daemon --info clean build
 FATAL: command execution failed
 java.io.IOException: Cannot run program "gradle" (in directory "/var/jenkins/workspace/dadi"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)

在从属(同一用户)的命令行上运行相同的 gradle 命令时,它运行成功。

【问题讨论】:

  • 好的,再试一次:你在slave上设置GRAILS_HOME变量了吗?
  • 我猜你的意思是 GRADLE_HOME。在那种情况下,我确实在从属节点和詹金斯节点配置中都设置了它。

标签: hudson jenkins gradle


【解决方案1】:

找到了解决方法! 我已经开始使用 gradle 包装器来运行 gradle 构建。 我做了两件事:

  1. 按照page 上的说明创建 gradlew(和其他文件)并在我的存储库中检查它们
  2. 在 jenkins gradle 插件中将构建步骤标记为使用 gradle wrapper。

    task wrapper(type: Wrapper) { gradleVersion = '2.0' }

上面这行会在每次运行 gradle build 时创建.gradle 文件夹并下载所需的gradle 版本(任务中提到),这意味着不需要签入 .gradle 文件夹 不再进入您的存储库。

还必须将 gradlew 重命名为 gradle.bat,因为 jenkins gradle 插件即使在 linux 上也尝试运行 gradle.bat。 而已。工作。

【讨论】:

  • 这是 Jenkins gradle 插件的问题。不必将 gradlew 文件签入上游仓库...
猜你喜欢
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
相关资源
最近更新 更多