[英]Jenkins job using Gradle can't find executable
我正在嘗試設置Jenkins工作來構建下一個大型Android應用程序! 我安裝了Android SDK,這部分似乎工作正常。 我在Jenkins上安裝了Gradle Plugin v1.24,現在我想我想弄清楚如何讓Gradle真正起作用。
第一次嘗試是讓Jenkins從gradle.org自動下載特定版本。 我試圖拉v2.2.1,因為這似乎是我的Android應用程序在本地構建的版本。 當我這樣做時,我在Jenkins的工作中遇到了這個錯誤:
[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安裝。
有沒有人對我可能需要做什么有任何指示或建議?
更新(仍然失敗)
我可以手動構建我的應用程序,但在jenkins工作區中導航到我的項目的根目錄並執行
./gradlew assemble
終於想通了。 我需要更新我的jenkins作業以使用Gradle包裝器而不是特定的Gradle版本。 一旦我這樣做了,我還有一些錯誤要篩選,但它們都非常有用,並且給了我解決它們所需的信息。
我下載了Gradle。 提取到某個地方。
在Jenins> Manage Jenkins> Gradle
取消選中自動安裝。
將路徑設置為gradle home,(例如:C:\\ Graddle \\ gradle-2.1)。
Probelm解決了。
對於在Linux上運行的Jenkins:
下載gradle zip文件
cd / opt /
wget https://services.gradle.org/distributions/gradle-2.10-all.zip
拉開拉鏈
解壓gradle-2.10-all.zip
訪問詹金斯網站
Jenkins>管理Jenkins>配置系統> Gradle> Gradle安裝
取消選中自動安裝,將2.10設置為name,將/opt/gradle-2.10設置為GRADLE_HOME。
點擊你的工作
配置>構建>調用Gradle腳本
選擇Invoke Gradle,在Gradle Version下拉列表中選擇2.10。
如果之前使用Invoke Gradle script
選項配置了構建並選擇了特定的Gradle Version
(例如2.4),則他啟動了構建,但后來切換到Use Gradle Wrapper
選項而不將Gradle Version
值重置為Default
。 詹金斯會發布
[Gradle] - [ERROR]無法檢索Gradle可執行文件。
這篇文章記載了這是一個詹金斯的錯誤。
解決方法是在切換到Use Gradle Wrapper
之前將Gradle Version
重置為Default
。
這有助於您刪除無效的工具問題:
管理Jenkins - >管理插件 - >高級:單擊頁面右下角的“立即檢查”按鈕。
在舊版本的Jenkins(v1.609)上,我不得不刪除“Gradle構建腳本”步驟,並重新創建它:-O
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.