似乎很難在 Jenkins/Groovy 腳本化管道中存盤一堆用于共享代碼的變數。我嘗試了很多方法,但似乎都沒有給出預期的結果。
這種方法看起來最有希望,但在呼叫管道中所有值都回傳為 null。在詹金斯管道中獲取全域變數。
我的密碼是謊言
import org.blabla.JobHelper
println("env.NO_PROXY: -->${env.NO_PROXY}<--")
在 JobHelper.groovy 檔案中,我定義了
package org.blabla.project
env.NO_PROXY = 'localhost,127.0.0.1,169.254.169.254'
為了保護無辜者,名字已經有所改變,但你明白了。
該腳本僅列印null該值。
有沒有一種簡單的方法(或實際上任何方法)可以從共享庫檔案中提取一堆變數?感覺這應該是一個非常簡單的練習,但是在花了很多時間搜索之后,我一點也不聰明。
uj5u.com熱心網友回復:
通常,env只有在管道啟動后才可用,但 groovy 腳本會更早地解決。
我使用靜態類成員作為全域變數。應用于您的代碼示例,它看起來像這樣:
JobHelper.groovy
package org.blabla.project
# Class must be named like the file that contains it.
class JobHelper {
static String getNO_PROXY() { 'localhost,127.0.0.1,169.254.169.254' }
}
別處:
import org.blabla.project
println("NO_PROXY: -->${JobHelper.NO_PROXY}<--")
請注意,Groovy 會自動從get*()和set*()方法生成屬性,因此我們可以使用縮寫形式而不必撰寫JobHelper.getNO_PROXY().
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420622.html
標籤:
上一篇:無法在SafeSubscriber._next(notifications-query.component.ts:56:21)讀取null的屬性(讀取“訊息”)
