使用Gradle的Jenkins作业无法找到可执行文件

时间:2015-05-18 03:08:24

标签: android jenkins gradle

我正在尝试设置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

6 个答案:

答案 0 :(得分:5)

终于明白了。我需要更新我的jenkins作业以使用Gradle wrapper而不是特定的Gradle版本。一旦我这样做了,我还有一些错误要筛选,但它们都非常有用,并且给了我解决它们所需的信息。

答案 1 :(得分:3)

我下载了Gradle。 提取到某个地方。

在杰宁斯&gt;管理Jenkins&gt; Gradle

取消选中自动安装。

将路径设置为gradle home,(例如:C:\ Graddle \ gradle-2.1)。

Probelm解决了。

答案 2 :(得分:2)

对于在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. 访问詹金斯网站

    詹金斯&gt;管理Jenkins&gt;配置系统&gt; Gradle&gt; Gradle安装

    取消选中自动安装,将2.10设置为name,将/opt/gradle-2.10设置为GRADLE_HOME。

  4. 点击你的工作

    配置&gt;构建&gt;调用Gradle脚本

    选择Invoke Gradle,在Gradle Version下拉列表中选择2.10。

答案 3 :(得分:1)

如果之前使用Invoke Gradle script选项配置了构建并选择了特定的Gradle Version(例如2.4),则他启动了构建但后来切换到Use Gradle Wrapper选项而不重置{ {1}}返回Gradle Version

将发布

  

[Gradle] - [ERROR]无法检索Gradle可执行文件。

这是一个詹金斯&#39;这个post记录的错误。

解决方法是在切换到Default之前将Gradle Version重置为Default

答案 4 :(得分:0)

这有助于您删除无效的工具问题:

管理Jenkins - &gt;管理插件 - &gt;高级:点击&#34;立即检查&#34;页面底部/右侧的按钮。

答案 5 :(得分:0)

在旧版本的Jenkins(v1.609)上,我不得不删除“ Gradle build script”步骤,然后重新创建它:-O