簡體   English   中英

使用Gradle的Jenkins作業無法找到可執行文件

[英]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:

  1. 下載gradle zip文件

    cd / opt /

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

  2. 拉開拉鏈

    解壓gradle-2.10-all.zip

  3. 訪問詹金斯網站

    Jenkins>管理Jenkins>配置系統> Gradle> Gradle安裝

    取消選中自動安裝,將2.10設置為name,將/opt/gradle-2.10設置為GRADLE_HOME。

  4. 點擊你的工作

    配置>構建>調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM