【问题标题】:fetching parameters from a jenkins job in java code从 Java 代码中的詹金斯作业中获取参数
【发布时间】:2017-09-21 18:55:12
【问题描述】:

我有一个参数化的 jenkins 作业正在访问我的插件。在 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 的环境变量而不是作业的参数。

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

请帮忙。

【问题讨论】:

    标签: java jenkins parameters


    【解决方案1】:

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

    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)

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

    【讨论】:

      【解决方案2】:

      据我所知,Jenkins 参数是作为环境变量公开的。但是,如果您使用启动 Java 子进程的 Maven 等构建系统,这些变量可能不会被继承。

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

      【讨论】:

      • 您好,感谢您的快速回复,但只有在阅读此参数后,我才能启动新的子流程。因此,首先需要它。另外,您能否解释一下 jenkins 配置中的位置(对于这个特定的工作),我需要提供您建议的命令吗?
      • Jenkins 中的配置位置取决于您构建的性质。例如,如果您使用 Maven,则“调用顶级 Maven 目标”构建步骤包括“属性”文本区域。无论您使用什么构建系统,都应该有一些地方可以指定命令行参数。
      【解决方案3】:

      实现此目的的一个选项是您的 java 代码中的“PASS and GET AS ARGUMENT”。

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

      urlValue=${url} 
      

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

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

      【讨论】:

      • 这又是为了从 jenkins 传递值,但我可以使用 job.但我想在我的 java 代码中访问它们,这就是我需要帮助的地方。
      • 在您的 java 代码中,您应该能够在您的 main 函数中获取值。例如,在 public static void main (args[]) 中,您可以获得 args[1] 、 args[2] 这样的值。
      • 我尝试在 jenkins 服务器上执行它,但它要求一个 java 文件。我再次给出了我在插件开发中使用的 java 文件的名称,它给出了一条错误消息“无法找到或加载主类 J.java”。此外,这个参数将由一个来自 SVN 的 post-commit 钩子传递,它只能传递给我 url 参数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多