[英]maven release:prepare in azure build pipeline
我正在嘗試在 maven 工具中構建的 scala 項目上實施 azure devops。
我必須在項目中使用發布管理,以便我使用下面的 scm 連接和 maven-release 插件,如下面的 pom.xml 文件所示。
...
...
<groupId>com.group.id</groupId>
<artifactId>engineering-parsers</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
....
....
....
<scm>
<connection>scm:git:git@git.org.com:data-layer/engineering-parser.git</connection>
<developerConnection>scm:git:git@git.org.com:data-layer/engineering-parser.git</developerConnection>
<url>https://git.org.com/data-layer/engineering-parser</url>
<tag>v1.0.0</tag>
</scm>
...
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<checkModificationExcludes>
<checkModificationExclude>pom.xml</checkModificationExclude>
</checkModificationExcludes>
</configuration>
</plugin>
</plugins>
</build>
...
...
我在 azure 構建管道中添加了一個 maven 任務,如下所示,並提供了命令release:prepare並嘗試使用--batch-mode release:clean release:prepare -Dtag=2.0.0 -DreleaseVersion=2.0.0 -DdevelopmentVersion=2.0 .1-SNAPSHOT -Dusername=Personal%20Access%20Token -Dpassword=xxxxxGIT PATxxxxx
似乎使用提供的命令我無法連接到 git 存儲庫並將更改推送到存儲庫。
在將 maven 發布插件與 devops 一起使用時,我還有什么需要添加的嗎?
任何線索表示贊賞!
您需要在 Maven 調用中添加參數-B
以避免交互模式。
[錯誤] git-commit 命令失敗。 ……
看來您還沒有通過認證信息。
您可以嘗試在 pom.xml 文件中添加project.scm.id
。
<properties>
<project.scm.id>my-scm-server</project.scm.id>
</properties>
然后你可以添加一個 Settings.xml 文件來傳遞身份驗證。
<settings>
<servers>
<server>
<id>my-scm-server</id>
<username>myUser</username>
<password>myPassword</password>
</server>
</servers>
</settings>
這是一個文檔,您可以參考它。
或者您可以嘗試在命令中傳遞身份驗證信息(不推薦)。
release:prepare -Dusername=[username] -Dpassword=[password]
您可以參考這張票以獲取更多信息。
根據 pom.xml 中的值而不是硬編碼..有什么辦法嗎?
為了達到這個目的,需要使用一個powershell腳本來獲取對應的position的值,並將其設置為管道變量。
例如:
$filePath = "filepath/pom.xml"
[xml]$pomXml = Get-Content $filePath
$version = $pomXml.project.version
Write-Host "##vso[task.setvariable variable=version]$version"
在這種情況下,可以得到json文件所在位置對應的參數值。
然后您可以使用變量(例如$(version)
)來替換硬編碼。
更新:
您可以嘗試在 maven 任務之前添加額外的命令行任務來運行 git 配置命令。
git config --global user.email "you@example.com"
git config --global user.name "PAT"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.