Android Jenkins使用Gradle can';找不到可执行文件

Android Jenkins使用Gradle can';找不到可执行文件,android,jenkins,gradle,Android,Jenkins,Gradle,我正试图建立一个詹金斯的工作,以建立下一个大的Android应用程序!我已经安装了Android SDK,这部分似乎工作正常。我已经在Jenkins上安装了Gradle插件v1.24,现在我想我正试图弄清楚如何让Gradle真正工作 第一次尝试是让詹金斯从gradle.org自动下载特定版本。我正在尝试使用v2.2.1,因为这似乎是我的Android应用程序在本地构建的版本。当我这样做时,我在詹金斯的工作中遇到了以下错误: [Gradle] - Launching build. Invalid

我正试图建立一个詹金斯的工作,以建立下一个大的Android应用程序!我已经安装了Android SDK,这部分似乎工作正常。我已经在Jenkins上安装了Gradle插件v1.24,现在我想我正试图弄清楚如何让Gradle真正工作

第一次尝试是让詹金斯从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
我尝试了许多不同的版本,但都无法实现。所以,接下来是告诉詹金斯从哪里下载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作业以使用而不是特定的Gradle版本。一旦我这样做了,我还有一些错误要筛选,但它们都非常有用,并且给了我解决它们所需的信息。

我下载了Gradle。 被抽到某个地方

在Jenins>管理Jenkins>Gradle中

取消选中“自动安装”

设置gradle home的路径(例如:C:\Graddle\gradle-2.1)


问题已解决。

对于在linux上运行的Jenkins:

  • 下载gradlezip文件

    cd/opt/

    wget

  • 解压

    解压gradle-2.10-all.zip

  • 访问詹金斯网站

    Jenkins>管理Jenkins>配置系统>Gradle>Gradle安装

    取消选中自动安装,将2.10设置为name,将/opt/gradle-2.10设置为gradle\u HOME

  • 点击你的工作

    配置>生成>调用渐变脚本

    选择Invoke Gradle,在Gradle版本下拉列表中选择2.10


  • 如果先前使用
    Invoke Gradle script
    选项配置了构建,并选择了特定的
    Gradle版本
    (例如2.4),他启动了构建,但后来切换到
    Use Gradle Wrapper
    选项,而没有将
    Gradle Version
    值重置回
    默认值。詹金斯将发布

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

    正如本文所记录的,这是一个詹金斯的错误


    解决方法是在切换到
    使用渐变包装之前,将
    渐变版本
    重置为
    默认值
    ,这将帮助您消除无效的工具问题:


    管理Jenkins->管理插件->高级:点击页面右下角的“立即检查”按钮。

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

    如果您将
    Gradle包装任务添加到Gradle构建文件中,它将减轻您手动下载的痛苦,包装器任务将完成它
    
    ./gradlew assemble