簡體   English   中英

Jenkins插件中的變量替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM