持续集成 Jenkins Plugin 获取变量的问题。

高浩 · 2017年04月18日 · 最后由 大冲 回复于 2017年09月06日 · 1745 次阅读

前世

可以查看myersguo持续集成 Hello,Jenkins Plugin。也感谢 myersguo。

我的今生 - 遇到了什么问题?

下图的变量,如果直接通过等号赋值,会出现什么情况?

答:会把 ${ResultName}当作一个字符串,直接赋值给了你设置的内部变量。
崩溃,这不是我想要的的,我想要的是,识别出来它是形如 ${XXX}的时候,找到在 jenkins 执行 job 的时候,这个 ${XXX}的真正的值。

刚开始我怎么解决?

答:正则表达式!但是我想,应该不会这么脑残(为了交任务,先这么干了)。

真正的答案在这里

hudson.EnvVars 的 expand(String s) 是啥意思?下面是官方 api:

public String expand(String s)
Expands the variables in the given string by using environment variables represented in 'this'.

传送门:jenkins api
具体使用:

public boolean perform(AbstractBuild build, Launcher launcher,
            BuildListener listener) throws InterruptedException, IOException {
        EnvVars env = build.getEnvironment(listener);
        String includes = env.expand(name); //name 是定义的局部变量

这里的 includes,应该就是想要的实参了。

总结一下

通过上面方法的调用,jenkins 执行的时候,会去环境变量中捞一遍。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞
高浩 Hello,Jenkins Plugin 中提及了此贴 04月18日 09:12

非常感谢,遇到了相同问题,困扰两天了😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册