Jenkins执行shell无法找到gradle命令

时间:2017-02-17 06:53:32

标签: shell jenkins gradle

我试图在jenkins master的特定节点的执行shell中触发gradle命令,并且它将异常作为 -

gradle: command not found
Build step 'Execute shell' marked build as failure

但是,如果尝试在本地工作空间下的同一节点中执行shell,则gradle命令有效。

我的理解 -

  • 默认情况下从远程触发任何作业尝试搜索可执行文件,例如' adb'' gradle'在/ usr / local / bin节点机器(Macintosh)
  • 读写访问应该在' .gradle'夹

我做了什么 -

  • 将.gradle添加到/ usr / local / bin of slave

  • 授予.gradle

  • 的读写权限

这里,node-jenkins和master-jenkins都安装了gradle v2.5。为什么执行从主jenkins触发的shell无法在slave jenkins中找到gradle,任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:0)

在尝试运行gradle之前尝试运行env。并从命令行将其与env进行比较。我认为Jenkins使用另一种方式。

答案 1 :(得分:0)

我也遇到了同样的问题,其中gradle命令在安装了jenkins的机器上工作正常,但是同一命令不能用于奴隶。

解决方案:

  1. 您需要在奴隶上设置GRADLE_HOME
  2. 最重要的是:将PATH设置为从属配置[从从属机器复制精确的PATH路径并将其复制到Jenkins - >下的Jenkins从属配置中Manage Jenkins - > Manage Node - > NodeName(您的节点名称) - > Configure and search for Node Properties - > Environment variables]
  3. 保存

答案 2 :(得分:0)

就我而言,我添加了其他PATH env变量,然后它起作用了。

enter image description here

答案 3 :(得分:0)

我也面临着同样的问题

  • 验证是否已将Gradle插件添加到詹金斯
  • 验证您是否在“ gradle.build”文件所在的文件夹中

我的示例:gradle.build的位置不符合foulder automation-api enter image description here