Jenkins参数化构建插件不';Don’我不能把工作传给孙子

Jenkins参数化构建插件不';Don’我不能把工作传给孙子,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我使用参数化构建插件触发一系列4个作业。作业1设置为“在其他项目上触发参数化生成”。它调用作业B并从属性文件中设置一个参数,其中一个参数设置为预定义参数 作业B有两个定义为字符串参数的输入参数,作业找到这两个参数后运行正常。作业B被设置为“在其他项目上触发参数化构建”,并调用作业C。作业C被参数化以接收相同的两个参数 然而,作业C从未获得任何参数。在作业B中,我尝试传递当前构建参数,尝试设置预定义参数(类型为var1=${var1},甚至设置myTestVar=hello),但在作业C中找不到任

我使用参数化构建插件触发一系列4个作业。作业1设置为“在其他项目上触发参数化生成”。它调用作业B并从属性文件中设置一个参数,其中一个参数设置为预定义参数

作业B有两个定义为字符串参数的输入参数,作业找到这两个参数后运行正常。作业B被设置为“在其他项目上触发参数化构建”,并调用作业C。作业C被参数化以接收相同的两个参数

然而,作业C从未获得任何参数。在作业B中,我尝试传递当前构建参数,尝试设置预定义参数(类型为var1=${var1},甚至设置myTestVar=hello),但在作业C中找不到任何参数

作业A是一个maven构建,作业B是自由式,C又是maven,D是自由式(如果我有机会的话)

我正在使用Jenkins 1.623和参数化构建插件2.27


我在这里不知所措。有什么想法吗?

好吧,我推荐以下步骤来解决此问题:

  • 在先前完成的构建作业C中,检查
    参数
    以查看作业B是否传入了参数。如果这些参数不存在,则可能需要检查作业B中的参数化构建触发器配置,以查看其配置是否正确
  • 尝试使用下游作业(例如作业C)中的
    echo
    在shell脚本中打印参数,以查看是否可以在控制台日志中看到该参数。例如,
    echo$foo
  • 如果使用Groovy脚本,请确保使用
    System.getenv()
    获取环境变量。例如,
    def foo=System.getenv()[“foo”]

  • 那么,我建议您采取以下步骤来解决此问题:

  • 在先前完成的构建作业C中,检查
    参数
    以查看作业B是否传入了参数。如果这些参数不存在,则可能需要检查作业B中的参数化构建触发器配置,以查看其配置是否正确
  • 尝试使用下游作业(例如作业C)中的
    echo
    在shell脚本中打印参数,以查看是否可以在控制台日志中看到该参数。例如,
    echo$foo
  • 如果使用Groovy脚本,请确保使用
    System.getenv()
    获取环境变量。例如,
    def foo=System.getenv()[“foo”]

  • 啊,我用的是groovy脚本而不是shell脚本。当我使用带有echo“Test:$testVar”的shell脚本时,它工作了!啊,我用的是groovy脚本而不是shell脚本。当我使用带有echo“Test:$testVar”的shell脚本时,它工作了!