Java Dynatrace应用程序Mon插件jenkins管道兼容性-扩展EnvironmentContributor类时问题设置环境变量

Java Dynatrace应用程序Mon插件jenkins管道兼容性-扩展EnvironmentContributor类时问题设置环境变量,java,plugins,jenkins-plugins,jenkins-pipeline,dynatrace,Java,Plugins,Jenkins Plugins,Jenkins Pipeline,Dynatrace,我正在尝试扩展Dynatrace应用程序Mon插件,使其与Jenkins管道兼容。我从中获取了源代码(源代码来自此存储库的master分支,出现了一些问题,无法正常工作,因此我最终下载了2.0.5版的源代码) 我编写了一个类DynatraceAppMonBuildEnvStep,它扩展了abstractsteppimpl,并模仿了TABuildWrapper步骤的功能。当Utils.updateBuildVariables(build,parameters)时,我遇到了问题方法,该类最终将设置环

我正在尝试扩展Dynatrace应用程序Mon插件,使其与Jenkins管道兼容。我从中获取了源代码(源代码来自此存储库的master分支,出现了一些问题,无法正常工作,因此我最终下载了2.0.5版的源代码)

我编写了一个类
DynatraceAppMonBuildEnvStep
,它扩展了
abstractsteppimpl
,并模仿了
TABuildWrapper
步骤的功能。当
Utils.updateBuildVariables(build,parameters)时,我遇到了问题DynatraceAppMonBuildEnvStep
类中调用code>方法,该类最终将设置环境变量。我没有得到任何错误/异常,但它没有设置我需要注入到
mvn build
命令中的环境变量

在管道脚本中运行
bat'set'
时,它不会显示在环境变量下面。如果通过非管道调用插件,我可以看到这些环境变量

dtMarker=testservice
dtPassword=password1
dtProfile=testprofile
dtServerUrl=https://<someurl>:8021
dtTestrunID=<test id>
dtUsername=<username>
dtVersionBuild=36
dtVersionMajor=testservice
dtMarker=testservice
dtPassword=password1
dtProfile=testprofile
dtServerUrl=https://:8021
dtTestrunID=
dtUsername=
dtVersionBuild=36
dtVersionMajor=testservice
代码流如下:DynatraceAppMonBuildEnvStep->Utils->DynatraceVariablesAction->DynatraceVariablesEnvironmentContributor->buildEnvironmentFor(方法)

DynatraceAppMonBuildEnvStep.java

package com.dynatrace.jenkins.steps;
导入哈德逊扩展;
导入hudson.model.ParameterValue;
导入hudson.model.PasswordParameterValue;
导入hudson.model.Run;
导入hudson.model.StringParameterValue;
导入hudson.model.TaskListener;
导入hudson.util.FormValidation;
导入jenkins.model.GlobalConfiguration;
导入org.apache.commons.lang.StringUtils;
导入org.jenkinsci.plugins.workflow.steps.AbstractStepDescriptorImpl;
导入org.jenkinsci.plugins.workflow.steps.AbstractStepImpl;
导入org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution;
导入org.jenkinsci.plugins.workflow.steps.StepContextParameter;
导入org.kohsuke.stapper.DataBoundConstructor;
导入org.kohsuke.stapper.QueryParameter;
导入com.dynatrace.jenkins.dashboard.Messages;
导入com.dynatrace.jenkins.dashboard.TABuildSetupStatusAction;
导入com.dynatrace.jenkins.dashboard.TAGlobalConfiguration;
导入com.dynatrace.jenkins.dashboard.utils.BuildVarKeys;
导入com.dynatrace.jenkins.dashboard.utils.utils;
导入com.dynatrace.sdk.server.exceptions.ServerResponseException;
导入com.dynatrace.sdk.server.sessions.sessions;
导入com.dynatrace.sdk.server.sessions.models.StartRecordingRequest;
导入com.dynatrace.sdk.server.testautomation.testautomation;
导入com.dynatrace.sdk.server.testautomation.models.FetchTestRunsRequest;
导入com.sun.jersey.api.client.clienthandler异常;
禁止导入静态java.net.HttpURLConnection.HTTP_;
导入静态java.net.HttpURLConnection.HTTP\u未找到;
未经授权导入静态java.net.HttpURLConnection.HTTP_;
导入java.io.PrintStream;
导入java.net.URI;
导入java.util.ArrayList;
导入java.util.List;
导入javax.annotation.Nonnull;
导入javax.inject.inject;
导入javax.net.ssl.SSLHandshakeException;
公共最终类DynatraceAppMonBuildEnvStep扩展了AbstractStepImpl{
/**
*第一个参数是系统配置文件名,第二个是内部版本号
*/
私有静态最终字符串记录\u会话\u名称=“%s\u Jenkins\u构建\u%s”;
公共最终字符串系统配置文件;
//测试运行属性-没有versionBuild属性,因为它来自
//构建对象
公共最终字符串versionMajor;
公共最终字符串versionMinor;
公共最终字符串版本修订;
公开最终字符串版本Milestone;
公共最终字符串标记;
公开最后会议;
@数据边界构造函数
公共DynatraceAppMonBuildEnvStep(最终字符串系统配置文件、最终字符串版本主要、最终字符串版本最小、,
最终字符串版本修订,最终字符串版本里程碑,最终字符串标记,
最后一次会议){
this.systemProfile=systemProfile;
this.versionMajor=versionMajor;
this.versionMinor=versionMinor;
this.versionRevision=versionRevision;
this.versionMilestone=versionMilestone;
this.marker=标记;
this.recordSession=recordSession;
}
私有void setupBuildVariables(运行构建,字符串serverUrl){
final TAGlobalConfiguration GlobalConfiguration=GlobalConfiguration.all().get(TAGlobalConfiguration.class);
列表参数=新的ArrayList(10);
添加(新的StringParameterValue(BuildVarKeys.BUILD_VAR_KEY_SYSTEM_PROFILE,systemProfile));
if(StringUtils.isNotEmpty(versionMajor)){
添加(新的StringParameterValue(BuildVarKeys.BUILD_VAR_KEY_VERSION_MAJOR,versionMajor));
}
if(StringUtils.isNotEmpty(versionMinor)){
添加(新的StringParameterValue(BuildVarKeys.BUILD_VAR_KEY_VERSION_MINOR,versionMinor));
}
if(StringUtils.isNotEmpty(versionRevision)){
添加(新的StringParameterValue(BuildVarKeys.BUILD_VAR_KEY_VERSION_REVISION,versionRevision));
}
添加(新StringParameterValue(BuildVarKeys.BUILD\u VAR\u KEY\u VERSION\u BUILD,
toString(build.getNumber());
if(StringUtils.isNotEmpty(versionMilestone)){
添加(新的StringParameterValue(BuildVarKeys.BUILD\u VAR\u KEY\u版本_