[英]fetching parameters from a jenkins job in java code
我有一个参数化的詹金斯工作正在访问我的插件。 在Java的插件代码内部,我需要使用这些参数才能触发jenkins中的另一项工作。 我无法获取这些参数,现在这是一个非常高优先级的问题。 我尝试了stackoverflow上可用的多种解决方案,例如,尝试访问环境变量,但未收到参数的值。 例如,我的参数是“ REPOS”,我需要它的值,我尝试过:
System.getProperty("REPOS");
但它返回null。
另外,尝试:
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
但是它会打印詹金斯的环境变量,而不是作业的参数。
我指的是下图中param:“ url”旁边的文本框中传递的值。
请协助。
据我所知,詹金斯参数作为环境变量公开。 但是,如果使用像Maven这样的构建系统来启动Java子进程,则这些变量可能不会被继承。
您最可靠的方法可能是在Jenkins配置中显式传递参数作为系统属性,例如-DREPOS=${REPOS}
实现此目的的选项之一是Java代码中的“通过并获取参数”。
詹金斯的变量值可以这样检索。
urlValue=${url}
然后在Java代码中传递此值。 这将是作业配置中Execute Shell的结构。
#!/bin/bash -e
urlValue=${url}
# run java code
java <classNameToRun> $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)
,
我能够获取在此构建中传入的所有参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.