[英]Set property to ant task from json file using jenkins
我有一个詹金斯(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设置一个参数到$ {http.external.port}和$ {smtp.external.port}属性。
是否可以从单独的詹金斯任务中完成? 我是否必须在相同的ant脚本中执行此操作? 我更喜欢从一个单独的jenkins步骤执行操作,因为其他不生成json文件的作业使用了相同的ant脚本(我是从静态.properties文件中获取参数)。
您想要的是:
不幸的是,这些仅在该构建步骤中仍然存在,但是您需要在下一个步骤中重新使用它们。 一种解决方案是将这些值临时存储到文件中,然后在下一个构建步骤(Ant)中读取该文件。 只要它们处于property=value
格式,Ant就可以轻松地从文件中准备属性。
您还可以读取这些相同的变量,然后使用EnvInject插件将其注入到Jenkins环境变量中进行构建。 这将进一步允许您将这些值作为环境变量引用,而不仅仅是在Ant中。
至于如何解析JSON的值:您需要提供运行的操作系统以及您熟悉的脚本语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.