我已经为Jenkins安装了Gradle插件。当我尝试构建项目时,我收到以下错误:
[workspace] $ gradle clean -b build/build.gradle
FATAL: command execution failed
java.io.IOException: Cannot run program "gradle" (in directory "/Users/Shared/Jenkins/Home/jobs/test/workspace"): 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)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:707)
at hudson.Launcher$ProcStarter.start(Launcher.java:338)
at hudson.Launcher$ProcStarter.join(Launcher.java:345)
at hudson.plugins.gradle.Gradle.performTask(Gradle.java:201)
at hudson.plugins.gradle.Gradle.perform(Gradle.java:97)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:695)
at hudson.model.Build$RunnerImpl.build(Build.java:178)
at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:465)
at hudson.model.Run.run(Run.java:1404)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:238)
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:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:91)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 16 more
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE
从命令行运行任务$ gradle clean -b build/build.gradle
按预期工作。
答案 0 :(得分:64)
我遇到了同样的问题,发现我遇到的问题是项目配置中的gradle版本。它设置为默认,当我将其设置为gradle版本时,我指向管理Jenkins &gt;中的插件配置配置选项,找到了gradle并正常工作。
这是一个难以调试的问题,我希望这能节省一些时间。
答案 1 :(得分:20)
解决方案 Mastering_the_Object 指出也是我的工作,只是为了澄清那里的步骤:
只是在Jenkins中安装Gradle插件是不够的,你还必须去:
Jenkins-&gt;管理Jenkins-&gt;配置Jenkins-&gt;配置系统
在&#34; Gradle Installations&#34;输入名称(在项目配置中显示为版本),选中&#34;自动安装&#34;并选择版本。然后你可以选择&#34; Gradle版本&#34;在项目配置中。
答案 2 :(得分:13)
在Jenkins等CI计算机上运行Gradle时,最方便的是使用Gradle Wrapper。
在您的开发计算机上,站在根项目目录中并运行
gradle wrapper
然后,将生成的文件签入源控制系统。之后,如果需要更改Gradle版本,则无需在Jenkins服务器上安装任何内容。只需像这样配置你的Jenkins工作:
通过为您的项目分发包装器,任何人都可以使用它 无需事先安装Gradle。用户更好 构建保证使用构建的Gradle版本 旨在与之合作。当然,这也很棒 持续集成服务器(即定期构建您的服务器的服务器 因为它不需要在服务器上进行配置。
答案 3 :(得分:10)
我使用Gradle包装器收到此错误,能够按如下方式修复我的损坏版本:
答案 4 :(得分:1)
jenkins无法找到gradle可执行文件。我从来没有让gradle包装工作。请按照以下步骤操作:
PS。我回答这个老问题,因为在与jenkins建立gradle时这是一个常见的问题。我花了一些时间试图使gradle包装器之前没有成功。
答案 5 :(得分:1)
同时使用@Skarab&amp;这里有许多其他解决方案可以让它发挥作用。
下载gradle(http://gradle.org/downloads), 将其解压缩到例如/ usr / local / lib / gradle, 打开/ etc / profile并添加以下两行: export GRADLE_HOME = / usr / local / lib / gradle export PATH = $ PATH:$ GRADLE_HOME / bin
然后在Manage Jenkins&gt;下配置系统&gt; Gradle,定义了GRADLE_HOME并为该gradle安装命名
然后,{这可能是项目的bug},将gradle版本从Default更改为我上面定义的版本
答案 6 :(得分:0)
正如其他人所说,这是因为Jenkins找不到gradle可执行文件。
所有已发布的解决方案都不适合我,但我能够通过将gradle bin目录添加到.bashrc中为构建从站上的构建帐户设置的路径来解决问题。修改.profile失败,并在jenkins节点配置中设置PATH也失败了。
有些帖子会建议在工具菜单中设置gradle路径,但也没有可用的gradle条目(可能是由于gradle插件中的回归/设计更改?)。
在任何情况下,我发现的最佳测试(再次运行构建并观察失败)是通过ssh运行env
:
ssh <host> env
并检查以这种方式定义的PATH变量;如果gradle不在那条路径中,你可能无法从jenkins运行它。