从java代码中的jenkins作业中获取参数

我有一个参数化的jenkins工作,正在访问我的插件。 在Java的内部插件代码中,我需要使用这些参数,我必须在jenkins中触发另一个作业。 我无法获取这些参数,现在这是一个非常高优先级的问题。 我已经在stackoverflow上尝试了多种解决方案,例如,尝试访问环境变量但没有收到param的值。 例如,我的参数是’REPOS’,我需要它的值,我试过:

System.getProperty("REPOS"); 

但它返回null。

还试过:

 Map env = System.getenv(); for (String envName : env.keySet()) { System.out.format("%s=%s%n", envName, env.get(envName)); } 

但它会打印jenkins的环境变量而不是作业的参数。

我指的是param旁边的文本框中传递的值:“url”在下图中。

在此处输入图像描述

请协助。

据我所知,Jenkins参数作为环境变量公开。 但是,如果您使用像Maven这样的构建系统来启动Java子流程,那么这些变量可能不会被inheritance。

可能你最可靠的方法是在Jenkins配置中明确地将参数作为系统属性传递,例如-DREPOS=${REPOS}

实现这一目标的一个选择是在java代码中“PASS and GET as ARGUMENT”。

可以像这样检索Jenkins的变量值。

 urlValue=${url} 

然后在java代码中传递此值。 这将是作业配置中的Execute shell的结构。

 #!/bin/bash -e urlValue=${url} # run java code java  $urlValue 

感谢您的建议,但是当我执行以下操作时它起了作用:我点击了

 JENKINS_HOST_URL/job/JENKINS_SEED_JOB_NAME/api/json?pretty=true 

并找到当前的内部版本号,然后用这个号码再次击中jenkins (JENKINS_HOST_URL/job/JENKINS_SEED_JOB_NAME/currBuildNum/api/json?pretty=true)

我能够获取此构建中传递的所有参数。