Jenkins插件中的变量替换

Pau*_*l H 5 java jenkins jenkins-plugins

我正在开发一个新的Jenkins插件,该插件将在Jenkins作业的构建阶段执行,并且要求允许用户在插件的作业配置中指定变量名(与文字值相反)。目的是,当作业执行用户指定的变量名时,该变量名将被与该变量关联的实际值替换,并且插件将在运行perform方法时使用该实际值。

例如,如果MY_VARIABLE具有该值的变量myValue是由另一部分作业注入到构建环境中的,并且该值${MY_VARIABLE}是在作业配置中为我的插件指定的,那么我希望插件${MY_VARIABLE}用的真实值代替变量myValue

在此处输入图片说明

做完一些研究后,我了解到Jenkins不会自动将作业配置中的变量替换为其各自的值,这必须由插件处理。我无法解决的是在插件中执行替换的最佳方法。到目前为止,我发现的唯一解决方案是解析从作业配置传递的字符串,以查看它是否与变量的正确模式匹配,然后在我的代码中查找值。

我的问题是,Jenkins API是否提供了更好的解决方案,该解决方案允许我的插件将变量替换为真实值?

Chr*_*Orr 4

您可以检索构建环境 \xe2\x80\x94EnvVars对象 \xe2\x80\x94 ,它有一个方便的方法expand(String)

\n\n

这承认$VARIABLE${VARIABLE}字符串并替换环境中的相应值。

\n\n

例如:

\n\n
@Override\npublic boolean perform(AbstractBuild build, Launcher launcher,\n  BuildListener listener) throws IOException, InterruptedException {\n    ...\n    final EnvVars env = build.getEnvironment(listener);\n    String expandedDbUrl = env.expand(dbUrl);\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n