【发布时间】:2014-11-11 11:00:43
【问题描述】:
在尝试向我的插件添加新功能时,我遇到了以下问题。
目标是获取在构建期间被覆盖的环境变量的更改。
例如:从 shell 脚本获取新值的字符串变量 (param1)。
所以,我添加了以下代码:
@Extension
public class MyRunListener extends RunListener<Run>{
@Override
public Environment setUpEnvironment(AbstractBuild build, Launcher launcher,
BuildListener listener) throws IOException, InterruptedException {
return new Environment(){
@Override
public boolean tearDown(AbstractBuild build, BuildListener listener)
throws IOException, InterruptedException {
EnvVars envVars = build.getEnvironment(listener);
String param1 = envVars.get("param1");
return super.tearDown(build, listener);
}
};
}
}
运行作业时:param1 = defaultValue。然后作业更改为:param1 = newValue.
在 tearDown(…) 方法中,我试图获取 param1 的新值,但我得到了更改之前的变量列表,其中 param1 = defaultValue 而不是被 shell 命令覆盖的新值,其中 param1 = newValue。
是否可以通过编程方式获取新值?我知道我可以写入属性文件然后读取它,但我正在寻找“幕后”解决方案。
【问题讨论】: