在我的 azure devops“发布到 XL 部署”任务中,我指的是 deployit-manifest.xml 文件,我需要在其中提及文件路径。我的文件名包含每次构建都会更改的 buildid。如何在 deployit-manifest.xml 文件的文件名中动态添加此构建 ID:
<ctep.Application name="/MyApp" file="/MyApp/MyApp-1.0.0.0.ear">
谢谢你的帮助
在我的 azure devops“发布到 XL 部署”任务中,我指的是 deployit-manifest.xml 文件,我需要在其中提及文件路径。我的文件名包含每次构建都会更改的 buildid。如何在 deployit-manifest.xml 文件的文件名中动态添加此构建 ID:
<ctep.Application name="/MyApp" file="/MyApp/MyApp-1.0.0.0.ear">
谢谢你的帮助
除了Krzysztof 提到的Replace Tokens 任务之外,您还可以使用其他扩展任务来替换配置文件中的变量。例如RegEx Find & Replace Task和Magic Chunks task。
当您使用替换标记任务或正则表达式查找和替换任务时。您首先需要在您的管道中定义一个变量来包含您的构建 ID 值(例如 BuildId)。
如果您需要在管道中动态设置 buildid,可以 在此处查看以在脚本中动态设置变量。
然后修改您的 deployit-manifest.xml 以标记化 buildid(使用 Token prefix#{
和 suffix包装}#
)。
<ctep.Application name="/MyApp" file="/MyApp/MyApp-#{BuildId}#.ear">
然后配置如下任务(示例在 Yaml 视图中)。并将其他设置保持为默认值。
替换令牌任务
- task: qetza.replacetokens.replacetokens-task.replacetokens@3
displayName: 'Replace tokens in **/deployit-manifest.xml'
inputs:
targetFiles: '**/deployit-manifest.xml'
正则表达式查找和替换
- task: knom.regexreplace-task.regex-replace.RegexReplace@3
displayName: 'RegEx Find & Replace'
inputs:
InputSearchPattern: |
**\deployit-manifest.xml
FindRegex: '(#{.*}#)'
ReplaceRegex: '$(BuildId)'
您可以使用上述任一项任务来完成这项工作。
请查看此扩展 -令牌替换。当您将此与每次构建时增加包版本的方式结合起来并将其放入变量中时,您将能够更新此文件以包含正确的包名称。