前世

可以查看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 执行的时候,会去环境变量中捞一遍。


↙↙↙阅读原文可查看相关链接,并与作者交流