如何在自定义Jenkins插件中获取Job参数?

时间:2014-07-24 14:51:09

标签: plugins jenkins

我正在为jenkins开发一个自定义插件。您可以在Ant脚本中使用环境变量显然获得各种Job参数,但显然没有为插件设置这些变量。

这是我的代码

@Override
public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) {
// This is where you 'build' the project.
// Since this is a dummy, we just say 'hello world' and call that a build.

String BUILD_NUMBER = System.getenv("BUILD_NUMBER");
String BUILD_ID = System.getenv("BUILD_ID");
String BUILD_URL = System.getenv("BUILD_URL");
String NODE_NAME = System.getenv("NODE_NAME");
String JOB_NAME = System.getenv("JOB_NAME");
String BUILD_TAG = System.getenv("BUILD_TAG");
String JENKINS_URL = System.getenv("JENKINS_URL");
String EXECUTOR_NUMBER = System.getenv("EXECUTOR_NUMBER");
String JAVA_HOME = System.getenv("JAVA_HOME");
String WORKSPACE = System.getenv("WORKSPACE");
String SVN_REVISION = System.getenv("SVN_REVISION");
String CVS_BRANCH = System.getenv("CVS_BRANCH");
String GIT_COMMIT = System.getenv("GIT_COMMIT");
String GIT_URL = System.getenv("GIT_URL");
String GIT_BRANCH = System.getenv("GIT_BRANCH");

listener.getLogger().println("BUILD_NUMBER = " + BUILD_NUMBER);
listener.getLogger().println("BUILD_ID = " + BUILD_ID);
listener.getLogger().println("BUILD_URL  = " + BUILD_URL);
listener.getLogger().println("NODE_NAME = " + NODE_NAME);
listener.getLogger().println("JOB_NAME = " + JOB_NAME);
listener.getLogger().println("BUILD_TAG = " + BUILD_TAG);
listener.getLogger().println("JENKINS_URL = " + JENKINS_URL);
listener.getLogger().println("EXECUTOR_NUMBER = " + EXECUTOR_NUMBER);
listener.getLogger().println("JAVA_HOME = " + JAVA_HOME);
listener.getLogger().println("WORKSPACE = " + WORKSPACE);
listener.getLogger().println("SVN_REVISION = " + SVN_REVISION);
listener.getLogger().println("CVS_BRANCH = " + CVS_BRANCH);
listener.getLogger().println("GIT_COMMIT  = " + GIT_COMMIT);
listener.getLogger().println("GIT_URL = " + GIT_URL);
listener.getLogger().println("GIT_BRANCH  = " + GIT_BRANCH);


return true;

}

这是输出:

Started by user anonymous
Building in workspace C:\Documents and Settings\ojblass\.jenkins\jobs\Test_Job\workspace
Updating https://svnserver.com/svn/repos/a/b/c at revision '2014-07-24T08:58:28.695 -0500'
At revision 13
no change for https://svnserver.com/svn/repos/a/b/c since the previous build
[workspace] $ cmd.exe /C '"ant.bat && exit %%ERRORLEVEL%%"'
Buildfile: C:\Documents and Settings\ojblass\.jenkins\jobs\Test_Job\workspace\build.xml

build-subprojects:

init:

build-project:
     [echo] SecurityVulnerabilities: C:\Documents and Settings\ojblass\.jenkins\jobs\Test_Job\workspace\build.xml

build:

BUILD SUCCESSFUL
Total time: 0 seconds
Results Location = \\wojblass\c$\temp publish = true
BUILD_NUMBER = null
BUILD_ID = null
BUILD_URL? = null
NODE_NAME = null
JOB_NAME = null
BUILD_TAG = null
JENKINS_URL = null
EXECUTOR_NUMBER = null
JAVA_HOME = C:\progra~1\java\jdk1.6.0_26
WORKSPACE = null
SVN_REVISION = null
CVS_BRANCH = null
GIT_COMMIT? = null
GIT_URL = null
GIT_BRANCH? = null
Finished: SUCCESS

正如你所看到的,所有参数都是null,我不确定我应该如何得到它们。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

在此处https://stackoverflow.com/a/14231001/1213907

尝试答案
EnvVars envVars = new EnvVars();
envVars = build.getEnvironment(listener);