2015-05-18 79 views
6

我正在嘗試設置一個Jenkins作業來構建下一個大的Android應用程序!我已經安裝了Android SDK,這部分似乎工作正常。我在Jenkins上安裝了Gradle Plugin v1.24,現在我想我正在弄清楚如何讓Gradle實際工作。Jenkins使用Gradle的工作無法找到可執行文件

首先嚐試讓Jenkins從gradle.org自動下載特定版本。我試圖拉動v2.2.1,因爲這似乎是我的Android應用程序在本地構建的版本。當我這樣做,我在詹金斯的工作得到這個錯誤:

[Gradle] - Launching build. 
Invalid tool ID 2.2.1 
[Gradle] - [ERROR] Can't retrieve the Gradle executable. 
Build step 'Invoke Gradle script' marked build as failure 

我嘗試了許多不同的版本,但不能得到那工作。所以,接下來是告訴Jenkins從哪裏下載Gradle。我給了它這個位置:

https://services.gradle.org/distributions/gradle-2.2.1-bin.zip 

我在建築時得到了一個不同的錯誤,但仍然不太確定該怎麼做。

[Gradle] - Launching build. 
[Journeyman-Android] $ gradle clean build 
FATAL: command execution failed 
java.io.IOException: Cannot run program "gradle" (in directory "/var/lib/jenkins/workspace/Journeyman-Android"): error=2, No such file or directory 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) 
at hudson.Proc$LocalProc.<init>(Proc.java:244) 
at hudson.Proc$LocalProc.<init>(Proc.java:216) 
at hudson.Launcher$LocalLauncher.launch(Launcher.java:816) 
at hudson.Launcher$ProcStarter.start(Launcher.java:382) 
at hudson.Launcher$ProcStarter.join(Launcher.java:389) 
at hudson.plugins.gradle.Gradle.performTask(Gradle.java:262) 
at hudson.plugins.gradle.Gradle.perform(Gradle.java:116) 
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) 
at hudson.model.Build$BuildExecution.build(Build.java:205) 
at hudson.model.Build$BuildExecution.doRun(Build.java:162) 
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) 
at hudson.model.Run.execute(Run.java:1744) 
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
at hudson.model.ResourceController.execute(ResourceController.java:98) 
at hudson.model.Executor.run(Executor.java:374) 
Caused by: java.io.IOException: error=2, No such file or directory 
at java.lang.UNIXProcess.forkAndExec(Native Method) 
at java.lang.UNIXProcess.<init>(UNIXProcess.java:186) 
at java.lang.ProcessImpl.start(ProcessImpl.java:130) 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) 
... 16 more 
Build step 'Invoke Gradle script' changed build result to FAILURE 

我試着看看我能用Jenkins CLI做些什麼,但是對我來說也是失敗了。我們使用Jenkins成功構建/部署了其他幾個項目,因此這是Jenkins的安裝。

有沒有人有任何指示或建議,我可能需要做什麼?

更新(仍然不及格)

我能夠手動導航,但我在工作區詹金斯項目的根和執行

./gradlew assemble 

回答

5

終於想出建造我的應用程序。我需要更新我的jenkins作業,以使用Gradle wrapper而不是特定的Gradle版本。一旦我這樣做了,我還有更多的錯誤可以篩選出來,但它們都非常豐富,給我提供瞭解決這些問題所需的信息。

3

我下載了Gradle。 提取到某個地方。

在Jenins> Manage Jenkins> Gradle

未選中安裝自動。

設置gradle home的路徑(例如:C:\ Graddle \ gradle-2.1)。

Probelm解決了。

2

在Linux上運行詹金斯:

  1. 的gradle下載的zip文件

    CD /選擇/

    wget的https://services.gradle.org/distributions/gradle-2.10-all.zip

  2. 解壓

    解壓gradle這個-2.10-所有。拉鍊

  3. 訪問詹金斯網站

    詹金斯>管理詹金斯>配置系統>搖籃>搖籃安裝

    取消選中自動安裝,設置2.10至名稱,設置/opt/gradle-2.10到GRADLE_HOME。

  4. 點擊你的工作

    配置>生成>調用腳本搖籃

    選擇Invoke搖籃,在搖籃版本下拉列表中選擇2.10。

+0

如果加上'gradle這個包裝task'您gradle這個構建文件,它會減輕你手動下載的痛苦,包裝任務將做[相關文章](http://stackoverflow.com/a/9394451/452708 ) – Abhijeet

1

如果一個先前Invoke Gradle script選項配置的構建和選擇的特定Gradle Version(比如說2.4爲例),他開始構建,但後來改用Use Gradle Wrapper選項,無需重新設置Gradle Version值回Default。 Jenkins會發出

[Gradle] - [錯誤]無法檢索Gradle可執行文件。

這是一個詹金斯的bug,記錄在post

解決方法是將Gradle Version重置爲Default,然後切換到Use Gradle Wrapper

0

這將幫助您刪除無效的工具問題:

管理詹金斯 - >管理插件 - >高級:點擊頁面底部/右「立即檢查」按鈕。

相關問題