2012-02-21 120 views
3

我已經配置了一個jenkins ubuntu奴隸,我想運行我的gradle build(使用gradle插件)。問題是,當運行詹金斯建設工作,我得到:不能在詹金斯奴隸上運行gradle

$ 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這個命令運行成功。

+0

好的,另一個嘗試:你是否在slave上設置了'GRAILS_HOME'變量? – 2012-02-22 10:47:51

+1

我想你的意思是GRADLE_HOME。在那種情況下,我確實在slave和jenkins節點配置中都設置了它。 – 2012-02-22 11:16:01

回答

4

找到了解決方法! 我已經開始使用gradle包裝來運行gradle構建。 我做了兩兩件事:

  1. 遵循這一page說明創建gradlew(和其他文件),並檢查他們在我的詹金斯庫
  2. gradle這個插件標記構建步驟使用gradle這個包裝。

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

上面這條線將創建.gradle文件夾&下載所需gradle版本(在任務中提到)每次gradle這個構建運行,這意味着有無需辦理登機手續.gradle文件夾再次進入您的存儲庫。

由於jenkins gradle插件嘗試在Linux上運行gradle.bat,所以還必須將gradlew重命名爲gradle.bat。 就是這樣。加工。

+1

這是Jenkins gradle插件的問題。一個人不應該檢查gradlew文件到上游回購... – 2014-01-30 19:55:12