如何在 Azure Pipeline 中增加内部版本号后更新分支上的 POM 文件中的版本
How to update version in POM file on branch after build number is incremented in Azure Pipeline
我是 Azure Pipelines 和 Maven 的新手。我有这个管道设置,可以更改 POM 文件中的版本号,然后执行 maven 全新安装:
Trigger:
- none
pool:
name: Azure Build VM
demands:
- Cmd
name: $(BuildVersion)$(Rev:.r)
steps:
- task: MavenAuthenticate@0
inputs:
artifactsFeeds: 'InternalRepo'
- script: |
cd JavaRESTfulEngine
mvn versions:set -DnewVersion=$(Build.BuildNumber)
displayName: 'Change POM Version'
- script: |
cd JavaRESTfulEngine
mvn clean install
rename C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\JavaRESTfulEngine-$(Build.BuildNumber).war ROOT.war
mkdir C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\App_Data
mkdir C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\App_Data\requests
rename C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\JavaRESTfulEngine-$(Build.BuildNumber).war ROOT.war
del C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\_remote.repositories
displayName: 'Build with Maven'
这行得通,并且工件具有正确的版本号。我的问题是,我可以继续更新 master 分支上 POM 中的版本以匹配 $(Build.BuildNumber) 以便下次我从 master 中拉出时,我拥有与最新版本相同的版本吗?执行此操作的最佳方法是什么?
如果您想更新 POM 中的版本以匹配 $(Build.BuildNumber),您可以尝试以下步骤。
我的pom.xml在根目录下,我想更新modelVersion
。
# Specify the file path
$xmlFileName= "pom.xml"
# Read the existing file
[xml]$xmlDoc = Get-Content $xmlFileName
# If it was one specific element you can just do like so:
$xmlDoc.project.modelVersion = "$(Build.BuildNumber)"
#Remove the old pom.xml
Remove-Item $xmlFileName
# Then you can save that back to the xml file
$xmlDoc.Save("$(System.DefaultWorkingDirectory)\pom.xml")
# Print new file content
gc $(System.DefaultWorkingDirectory)\pom.xml
查看此主题:Powershell script to update XML file content 了解更多详情。
我是 Azure Pipelines 和 Maven 的新手。我有这个管道设置,可以更改 POM 文件中的版本号,然后执行 maven 全新安装:
Trigger:
- none
pool:
name: Azure Build VM
demands:
- Cmd
name: $(BuildVersion)$(Rev:.r)
steps:
- task: MavenAuthenticate@0
inputs:
artifactsFeeds: 'InternalRepo'
- script: |
cd JavaRESTfulEngine
mvn versions:set -DnewVersion=$(Build.BuildNumber)
displayName: 'Change POM Version'
- script: |
cd JavaRESTfulEngine
mvn clean install
rename C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\JavaRESTfulEngine-$(Build.BuildNumber).war ROOT.war
mkdir C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\App_Data
mkdir C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\App_Data\requests
rename C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\JavaRESTfulEngine-$(Build.BuildNumber).war ROOT.war
del C:\Users\Build\.m2\repository\net\windward\JavaRESTfulEngine$(Build.BuildNumber)\_remote.repositories
displayName: 'Build with Maven'
这行得通,并且工件具有正确的版本号。我的问题是,我可以继续更新 master 分支上 POM 中的版本以匹配 $(Build.BuildNumber) 以便下次我从 master 中拉出时,我拥有与最新版本相同的版本吗?执行此操作的最佳方法是什么?
如果您想更新 POM 中的版本以匹配 $(Build.BuildNumber),您可以尝试以下步骤。
我的pom.xml在根目录下,我想更新modelVersion
。
# Specify the file path
$xmlFileName= "pom.xml"
# Read the existing file
[xml]$xmlDoc = Get-Content $xmlFileName
# If it was one specific element you can just do like so:
$xmlDoc.project.modelVersion = "$(Build.BuildNumber)"
#Remove the old pom.xml
Remove-Item $xmlFileName
# Then you can save that back to the xml file
$xmlDoc.Save("$(System.DefaultWorkingDirectory)\pom.xml")
# Print new file content
gc $(System.DefaultWorkingDirectory)\pom.xml
查看此主题:Powershell script to update XML file content 了解更多详情。