You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins自由风格项目中从XML文件读取并设置变量?

解决方案

方法一:通过PowerShell提取版本并生成属性文件(推荐,无需额外依赖)

  1. 在源码检出步骤之后,添加一个Execute PowerShell步骤,编写脚本解析Example.props文件并导出版本到属性文件:
# 定位到源码中的props文件(路径相对于构建节点的工作区)
$propsFilePath = ".\Example.props"
# 解析XML文件提取Version值
$versionValue = (Select-Xml -Path $propsFilePath -XPath "//Version").Node.InnerText
# 将版本写入属性文件,供后续注入使用
echo "Version=$versionValue" > .\version.properties
  1. 添加Inject environment variables步骤(Environment Injector插件提供),在"Properties File Path"中填写属性文件路径:.\version.properties。
  2. 后续步骤即可正常使用%Version%(Windows batch)或$Version(其他步骤)调用该版本值。

方法二:通过构建节点执行Groovy脚本提取版本

如果构建节点已安装Groovy环境,可使用单独的Execute Groovy script步骤(注意不是Environment Injector插件内的Groovy脚本),该步骤会在构建节点运行,直接访问工作区文件:

// 读取工作区中的props文件
def propsFile = new File("./Example.props")
def xmlContent = new XmlSlurper().parse(propsFile)
// 提取Version值并设置为环境变量
env.Version = xmlContent.Version.text()

执行完该步骤后,后续所有构建步骤均可直接使用%Version%或$Version。

关键注意事项

  • 所有读取Example.props的操作必须放在源码检出步骤之后,确保文件已存在于构建节点的工作区。
  • 路径需使用相对于构建节点工作区的相对路径,避免使用绝对路径(不同节点工作区路径可能不同)。

内容的提问来源于stack exchange,提问作者Fire Lancer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:59:59