首页 文章

使用jenkins从json文件将属性设置为ant任务

提问于
浏览
1

我有一个Jenkins作业,用一堆值吐出一个json文件 . 具体来说,此文件包含使用Jenkins插件创建的虚拟机的TCP端口号 .

我需要从json文件中获取这些端口号,并在ant构建中使用它们的值,我将其称为jenkins作业的下一步 .

json文件看起来有点像这样:

{
  "vms": [{
    "interfaces": [{
      "services": [{
        "internal_port": 25,
        "external_port": 12345,
        "id": "smtp"
      },
      {
        "internal_port": 80,
        "external_port": 12346,
        "id": "http"
      }]
    }]
  }]
}

所以我需要为我的ant脚本设置一个参数,从这个json到$ 和$ 属性 .

可以从单独的詹金斯任务中做到吗?我是否必须在同一个 Ant 脚本中执行此操作?我更喜欢从单独的jenkins步骤开始,因为这个相同的ant脚本用于其他不生成json文件的作业(我从静态.properties文件中获取参数) .

1 回答

  • 1

    你想要的是:

    • 运行shell构建步骤(取决于操作系统)以解析这些值的JSON文件 .

    • 将这些值存储在环境变量中 .

    不幸的是,这些仅在构建步骤中持续存在,但您需要在下一步中重复使用它们 . 一种解决方案是将这些值临时存储到文件中,然后在下一个构建步骤(Ant)中读取该文件 . Ant可以轻松地从文件中准备好属性,只要它们是 property=value 格式 .

    您还可以使用EnvInject plugin读取这些相同的变量,并将它们注入到构建的Jenkins环境变量中 . 这将进一步允许您将这些值作为环境变量引用,而不仅仅是在Ant中 .

    至于如何解析值的JSON:您需要提供正在运行的操作系统以及您熟悉的脚本语言 .

相关问题