Jenkins groovy 文件无法导入另一个 groovy
Jenkins groovy file can't import another groovy
在简单的形式中,我在 /jenkins 子文件夹的 repo 中有 2 个 groovy 文件。文件 A.groovy 和 B.groovy。里面A.groovy我有一个载重线
load(env.WORKSPACE + "@script/jenkins/B.groovy")
问题是我得到一个错误
java.nio.file.NoSuchFileException:
/Users/user/.jenkins/workspace/JobName@script/jenkins/B.groovy
但正如我们所见,总体看起来创建的加载函数几乎是正确的 url。重点是我实际获取的回购协议,特别是 A.groovy 正在进入附加子文件夹。我在日志的最开头看到了这一点,并且可以在本地找到。
Checking out git ... into /Users/user/.jenkins/workspace/JobName@script/ecb7a9317b1ad672698830264d9e0ce2b9b6f330c043bb85f48623f3cdcab65e/jenkins/A.groovy
尝试使用 echo sh(script: 'env|sort', returnStdout: true)
记录整个 env
对象,但根本没有 属性 包含该子文件夹名称。
为什么我会得到那个额外的 ecb7a9317b1ad672693830224d9e0ce2b9b3f730c043bb85f48925f3cdcab65e 子文件夹,我怎样才能摆脱它或以某种方式获取它的名称来为导入编写正确的 url?
我找到了解决方法(通过搜索文件夹),但我想找到更好的本机方法。
其中 -name 'jenkins'
中的 jenkins
是包含 groovy 个脚本的子文件夹名称。
git_jenkins_folder = sh (
script: "find \"" + WORKSPACE + "\"@script -type d -name 'jenkins'",
returnStdout: true
).trim()
utils = load("$git_jenkins_folder/Utils.groovy")
这样生成正确的工作路径。
/Users/user/.jenkins/workspace/JobName@script/ecb7a9317b1ad672698830264d9e0ce2b9b6f330c043bb85f48623f3cdcab65e/jenkins
我认为问题出在您传递给 load
的路径上。 env.WORKSPACE
不以 /
结尾。
load("${env.WORKSPACE}/@script/jenkins/B.groovy")
在简单的形式中,我在 /jenkins 子文件夹的 repo 中有 2 个 groovy 文件。文件 A.groovy 和 B.groovy。里面A.groovy我有一个载重线
load(env.WORKSPACE + "@script/jenkins/B.groovy")
问题是我得到一个错误
java.nio.file.NoSuchFileException:
/Users/user/.jenkins/workspace/JobName@script/jenkins/B.groovy
但正如我们所见,总体看起来创建的加载函数几乎是正确的 url。重点是我实际获取的回购协议,特别是 A.groovy 正在进入附加子文件夹。我在日志的最开头看到了这一点,并且可以在本地找到。
Checking out git ... into /Users/user/.jenkins/workspace/JobName@script/ecb7a9317b1ad672698830264d9e0ce2b9b6f330c043bb85f48623f3cdcab65e/jenkins/A.groovy
尝试使用 echo sh(script: 'env|sort', returnStdout: true)
记录整个 env
对象,但根本没有 属性 包含该子文件夹名称。
为什么我会得到那个额外的 ecb7a9317b1ad672693830224d9e0ce2b9b3f730c043bb85f48925f3cdcab65e 子文件夹,我怎样才能摆脱它或以某种方式获取它的名称来为导入编写正确的 url?
我找到了解决方法(通过搜索文件夹),但我想找到更好的本机方法。
其中 -name 'jenkins'
中的 jenkins
是包含 groovy 个脚本的子文件夹名称。
git_jenkins_folder = sh (
script: "find \"" + WORKSPACE + "\"@script -type d -name 'jenkins'",
returnStdout: true
).trim()
utils = load("$git_jenkins_folder/Utils.groovy")
这样生成正确的工作路径。
/Users/user/.jenkins/workspace/JobName@script/ecb7a9317b1ad672698830264d9e0ce2b9b6f330c043bb85f48623f3cdcab65e/jenkins
我认为问题出在您传递给 load
的路径上。 env.WORKSPACE
不以 /
结尾。
load("${env.WORKSPACE}/@script/jenkins/B.groovy")