Maven 如何在Azure管道中增加内部版本号后更新分支上POM文件中的版本

Maven 如何在Azure管道中增加内部版本号后更新分支上POM文件中的版本,maven,azure-pipelines,pom.xml,Maven,Azure Pipelines,Pom.xml,我对Azure管道和Maven都是新手。我有一个管道设置,它更改POM文件中的版本号,然后执行maven clean安装: Trigger: - none pool: name: Azure Build VM demands: - Cmd name: $(BuildVersion)$(Rev:.r) steps: - task: MavenAuthenticate@0 inputs: artifactsFeeds: 'InternalRepo' - scri

我对Azure管道和Maven都是新手。我有一个管道设置,它更改POM文件中的版本号,然后执行maven clean安装:

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'

这是可行的,并且工件具有正确的版本号。我的问题是,我是否可以继续更新主分支上POM中的版本,以匹配$(Build.BuildNumber),以便下次从主分支提取时,我拥有与最新版本相同的版本?执行此操作的最佳方法是什么?

如果要更新POM中的版本以匹配$(Build.BuildNumber),可以尝试以下步骤

我的pom.xml位于根目录下,我想更新
modelVersion


查看此帖子:了解更多详细信息。

谢谢!我可以将其用作powershell脚本的模板。最后,我还必须将更改的文件提交/推送到master,但它可以工作!
# 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