您的位置:首页 > 产品设计 > UI/UE

jenkins build pipeline plugin与parameterized传参冲突

2012-05-13 22:51 435 查看
build pipeline plugin是持续集成服务器Jenins的插件,最近发现build pipeline在传参数过程中,再出现参数重名的情况下,此插件会用down stream的参数去覆盖up stream的参数。

/**
* Given an Upstream AbstractBuild and a Downstream AbstractProject will retrieve the associated ParametersAction.
* This will result in parameters from the upstream build not overriding parameters on the downstream project.
* @param upstreamBuild - The AbstractBuild
* @param downstreamProject - The AbstractProject
* @return - AbstractBuild's ParametersAction
*/
public static Action getAllBuildParametersAction(AbstractBuild<?, ?> upstreamBuild, AbstractProject<?, ?> downstreamProject) {
// Retrieve the List of Actions from the downstream project
final ParametersAction dsProjectParametersAction = ProjectUtil.getProjectParametersAction(downstreamProject);

// Retrieve the List of Actions from the upstream build
final ParametersAction usBuildParametersAction = BuildUtil.getBuildParametersAction(upstreamBuild);

return mergeParameters(usBuildParametersAction, dsProjectParametersAction);
}


/**
* Merges two sets of ParametersAction
* @param base ParametersAction set 1
* @param overlay ParametersAction set 2
* @return - Single set of ParametersAction
*/
public static ParametersAction mergeParameters(ParametersAction base, ParametersAction overlay) {
final LinkedHashMap<String, ParameterValue> params = new LinkedHashMap<String, ParameterValue>();
if (base != null) {
for (ParameterValue param : base.getParameters()) {
params.put(param.getName(), param);
}
}

if (overlay != null) {
for (ParameterValue param : overlay.getParameters()) {
params.put(param.getName(), param);
}
}

return new ParametersAction(params.values().toArray(new ParameterValue[params.size()]));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: