无法在jenkins奴隶上运行gradle [英] Can't run gradle on jenkins slave

查看:579
本文介绍了无法在jenkins奴隶上运行gradle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我配置了一个jenkins ubuntu slave,我想运行我的gradle build(使用gradle插件)。问题是,当运行jenkins构建作业时,我得到:

  $ gradle --no-daemon --info clean build 
FATAL:命令执行失败
java.io.IOException:无法运行程序gradle(在目录/ var / jenkins / workspace / dadi中):java.io.IOException:error = 2,No这样的文件或目录
在java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
在hudson.Proc $ LocalProc。< init>(Proc.java:244)
at hudson.Proc $ LocalProc。< init>(Proc.java:216)

运行相同gradle命令在从属服务器(同一用户)的命令行上运行成功。

解决方案

找到解决方法!
我已经开始使用gradle包装来运行gradle构建。
我做了两件事:


  1. 按照页面创建gradlew(和其他文件)并在我的存储库中检查它们

  2. in jenkins gradle插件标记构建步骤使用gradle包装。



    任务包装(类型:包装){
    gradleVersion ='2.0'



    $ b

    上面这行代码会创建 .gradle 资料夹&每次运行gradle build时都需要下载 gradle 版本(在任务中提到),这意味着不需要签入.gradle文件夹再到你的仓库。

    由于jenkins gradle插件甚至在linux上运行gradle.bat,所以还必须将gradlew重命名为gradle.bat。
    就是这样。工作。


    I've configured a jenkins ubuntu slave and I want to run my gradle build on it(with gradle plugin). The problem is that when running the jenkins build job I get:

     $ gradle --no-daemon --info clean build
     FATAL: command execution failed
     java.io.IOException: Cannot run program "gradle" (in directory "/var/jenkins/workspace/dadi"): java.io.IOException: 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)
    

    When running the same gradle command on the command line of the slave(same user) it runs successfully.

    解决方案

    Found a workaround solution! I've start using gradle wrapper in order to run the gradle build. I did 2 things:

    1. followed instructions on this page to create gradlew (and other files) and checked them in my repository
    2. in jenkins gradle plugin marked the build step to use gradle wrapper.

      task wrapper(type: Wrapper) { gradleVersion = '2.0' }

    This above line would create.gradle folder & download required gradle version(mentioned in the task) every time gradle build is run, that means there is no need to check-in .gradle folder into your repository anymore.

    Also had to rename gradlew to gradle.bat since the jenkins gradle plugin try to run the gradle.bat even on linux. That's it. working.

    这篇关于无法在jenkins奴隶上运行gradle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆