当前位置: 首页 > 面试题库 >

使用Java代码从jenkins作业中获取参数

归建安
2023-03-14
问题内容

我有一个参数化的詹金斯工作正在访问我的插件。
在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));
              }

但它会打印詹金斯的环境变量,而不是作业的参数。


问题答案:

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

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

并找到了当前的内部版本号,此后,再次使用
该编号击中詹金斯(JENKINS_HOST_URL/job/JENKINS_SEED_JOB_NAME/currBuildNum/api/json?pretty=true),

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



 类似资料:
  • 我有一个Jenkins管道作业,它需要监控另一个Jerkins作业(比如JobA)当前构建,并在当前管道阶段发布状态(构建状态:成功或失败)。如何实现这一点。不会从管道作业触发作业(JobA)。它将独立运行。从管道作业中,需要获取作业A的状态。

  • 你好,詹金斯的朋友们, 我创建了一个JenkinsFreestyle项目,其中包含“执行Groovy脚本”步骤。从脚本中,我想在同一个Jenkins服务器上触发另一个参数化作业。 有人知道我该怎么做吗?

  • 问题内容: 就像使用“ build”命令从Jenkins CLI启动作业一样,是否可以使用CLI或任何其他命令行技术取消长期运行的作业。我正在Windows机器上尝试此操作,我不想直接从任务管理器中终止进程或关闭詹金斯人。请提出建议。 问题答案: 您可以通过调用JOB_URL / lastBuild / stop来停止Jenkins执行

  • 问题内容: 在管理多个作业的管道作业的Groovy代码中,是否可以读取在另一个作业的配置中定义的参数的默认值? 也就是说,在管道作业A中,我想读取作业B中参数P的默认值,该值尚未安排。(这将影响在作业A中构造B的请求的方式。) ReadJobParamDefault是否真正有用? 问题答案: 我想可能可以将某些Groovy类存储到共享库(https://jenkins.io/doc/book/pi

  • 问题内容: 我的应用程序知道用户的IP地址。我们需要识别用户的城市,州,国家以及用户的纬度和经度。 是否有一个Java库可以做到这一点? 如果没有,将IP地址转换为地理位置的算法或数据源是什么? 问题答案: http://www.maxmind.com/app/developers提供了本地数据库和java类,用于根据IP地址计算位置信息。我做了一些测试。结果似乎很好。 这是我使用的junit测试

  • 问题内容: 我正在使用Groovy脚本控制台在Jenkins上创建和更新作业。使用此处记录的API http://javadoc.jenkins-ci.org/ 我发现了如何通过使用创建工作 但是,如果作业已经存在,则此方法将失败。如何使用新的xml更新现有作业? 更新资料 基于@ogondza的答案,我使用了以下内容来创建然后更新作业 问题答案: 使用AbstractItem#updateByX