簡單來說,我在 /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
嘗試使用記錄整個env物件echo sh(script: 'env|sort', returnStdout: true),但根本沒有包含該子檔案夾名稱的任何屬性。
為什么我得到那個額外的 ecb7a9317b1ad672693830224d9e0ce2b9b3f730c043bb85f48925f3cdcab65e 子檔案夾,我怎樣才能擺脫它或以某種方式獲取它的名稱以組成正確的匯入 URL?
uj5u.com熱心網友回復:
我找到了一種解決方法(通過搜索檔案夾),但想找到一種更好的原生方式。
其中jenkinsin-name '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
uj5u.com熱心網友回復:
我認為問題在于您通過的路徑load。env.WORKSPACE不以結尾/。
load("${env.WORKSPACE}/@script/jenkins/B.groovy")
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/459125.html
