Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jenkins slave加载groovy脚本_Jenkins_Groovy_Jenkins Pipeline_Jenkins Slave - Fatal编程技术网

从jenkins slave加载groovy脚本

从jenkins slave加载groovy脚本,jenkins,groovy,jenkins-pipeline,jenkins-slave,Jenkins,Groovy,Jenkins Pipeline,Jenkins Slave,我有一个jenkins管道,它加载如下groovy实用程序脚本: Utils = load('/var/lib/jenkins/utils/Utils.groovy') 在主节点上执行管道时,一切正常。在本例中,我能够在管道中使用类Utils中的方法 node('master'){ stage('stage1'){ def Utils = load('/var/lib/jenkins/utils/Utils.groovy') Utils.doSometh

我有一个jenkins管道,它加载如下groovy实用程序脚本:

Utils = load('/var/lib/jenkins/utils/Utils.groovy')
主节点上执行管道时,一切正常。在本例中,我能够在管道中使用类Utils中的方法

node('master'){
    stage('stage1'){
        def Utils = load('/var/lib/jenkins/utils/Utils.groovy')
        Utils.doSomething()
    }
}
当我试图在从机中执行管道时,出现了问题。在这种情况下,上述负载会导致错误

java.io.IOException:java.io.FileNotFoundException:/var/lib/jenkins/utils/utils.groovy(没有这样的文件或目录)

为了避免此错误,在管道中,我在主节点中加载文件,如下所示

node('master'){
    stage('stage1'){
        Utils = load('/var/lib/jenkins/utils/Utils.groovy')
    }
}
node(){
    stage('stage2'){
        Utils.doSomething()
    }
}
这不是很有效,我不想使用主文件只是为了加载文件 关于如何在从属节点上加载Groovy scipt,您有什么建议吗

谢谢

首先,当您在从属节点上执行时试图加载文件时,导致了上面的错误java.io.IOException:java.io.FileNotFoundException:/var/lib/jenkins/utils/utils.groovy(没有这样的文件或目录)。但是该文件存储在主节点的/var/lib/jenkins/utils/utils.groovy中,我想这是另一台计算机和另一个文件系统。因此,这个错误是合乎逻辑的

当您在另一个节点(计算机、服务器等)上执行某些管道操作时,如果您想加载文件,则需要将其存储在该计算机(从机)中并从该计算机加载-因此路径必须与从机中的文件位置一致

因此,我建议:

  • 只需将Utils.groovy文件存储在从机上,然后从 那里
  • 将其加载到master上的工作区(就像您已经做的那样)
  • 此外,您还可以将groovy文件代码存储在github中,并从 不依赖于主/从文件系统(我建议使用此选项)