[英]Variable substitution in Jenkins plugin
我正在開發一個新的Jenkins插件,該插件將在Jenkins作業的構建階段執行,並且要求允許用戶在插件的作業配置中指定變量名稱(而不是文字值)。 目的是當作業執行時,用戶指定的變量名稱將替換為與變量關聯的實際值,然后插件將在運行perform方法時使用此實際值。
例如,如果具有值myValue
的變量MY_VARIABLE
被作業的另一部分注入到構建環境中,並且在我的插件的作業配置中指定了值${MY_VARIABLE}
,那么我希望該插件替換${MY_VARIABLE}
使用myValue
變量的實際值。
做了一些研究后,我了解Jenkins不會自動將作業配置中的變量替換為各自的值,這必須由插件處理。 我無法解決的是在我的插件中執行替換的最佳方法。 到目前為止我找到的唯一解決方案是解析從作業配置傳遞的字符串,看它是否與變量的正確模式匹配,然后在我的代碼中查找值。
我的問題是Jenkins API是否提供了一個更好的解決方案,允許我的插件替換具有實際值的變量?
您可以檢索構建環境 - 一個EnvVars
對象 - 它有一個方便的方法expand(String)
。
這可識別$VARIABLE
和${VARIABLE}
樣式的字符串,並替換來自環境的相應值。
例如:
@Override
public boolean perform(AbstractBuild build, Launcher launcher,
BuildListener listener) throws IOException, InterruptedException {
...
final EnvVars env = build.getEnvironment(listener);
String expandedDbUrl = env.expand(dbUrl);
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.