簡體   English   中英

maven 發布:准備在 azure 構建管道

[英]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

在此處輸入圖像描述

在運行構建管道時,maven 構建失敗並拋出以下錯誤。 在此處輸入圖像描述

似乎使用提供的命令我無法連接到 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM