微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Maven 发布:在 azure 管道上执行失败,因为它无法读取存储库的密码

如何解决Maven 发布:在 azure 管道上执行失败,因为它无法读取存储库的密码

我有一个父 pom,我在其中使用了 maven-release-plugin,以及需要推送到 Azure 工件的工件。我能够让它在我的本地工作,现在我正在尝试使用 azure 管道使其自动化,但我收到了 mvn release:perform 的以下错误

错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:3.0.0-M1:perform (default-cli) on project my-parent-repo: Unable to checkout from SCM
[ERROR] Provider message:
[ERROR] The git-clone command Failed.
[ERROR] Command output:
[ERROR] cloning into 'checkout'...
[ERROR] fatal: Could not read Password for 'https:********@dev.azure.com': terminal prompts disabled
[ERROR] -> [Help 1]

我的pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<scm>
    <developerConnection>scm:git:https://$(PAT)@dev.azure.com/my-org/my-prjt/_git/my-parent-repo/</developerConnection>
  <tag>HEAD</tag>
</scm>
<groupId>dispute</groupId>
<artifactId>my-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Microservice DI parent</name>
<description>DI microservice parent </description>
<distributionManagement>  
  <!-- Publish the versioned releases here -->  
  <repository>  
    <id>repo</id>  
    <name>Artifact repo</name>  
    <url>https://xxx.pkgs.visualstudio.com/2abc/_packaging/my-maven-artifacts/maven/v1</url>  
  </repository>  
</distributionManagement>  

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>3.0.0-M1</version>
  </plugin>
</plugins>
</build>

<repositories>
    <repository>
        <id>my-maven-artifacts</id>
        <url>
            https://xxx.pkgs.visualstudio.com/2abc/_packaging/my-maven-artifacts/maven/v1
        </url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>Pod4-artifacts</id>
        <url>
            https://xxx.pkgs.visualstudio.com/2abc/_packaging/my-maven-artifacts/maven/v1
        </url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

<properties>
    <!-- Build properties -->
    <maven.version>3.3.9</maven.version>
    <java.version>11</java.version>
</properties>
</project>

修复尝试: 我已在代理作业上启用 Allow scripts to access the OAuth token。我还为项目集合服务帐户和项目集合构建服务提供了在存储库下创建标签、分支和贡献的权限。 此外,还有一个包含用户名和密码的 ci-settings.xml 用于 repo id,它们在 Azure 管道的 Maven 任务中作为参数提供。 -e -B -s $(System.DefaultWorkingDirectory)/ci-settings.xml

如果有什么遗漏,请告诉我。请注意,它在我的本地运行良好。

解决方法

由于您使用的是 PAT 令牌而不是 OAuth 令牌,因此我们不需要启用选项 Allow scripts to access the OAuth token。如果你想使用这个,你可以使用这个网址

https://$env:SYSTEM_ACCESSTOKEN@dev.azure.com/my-org/my-prjt/_git/my-parent-repo

我们应该在select repo权限下为账户Project Collection Build Service(Org name)提供创建标签、分支、贡献的权限,而不是在All Repositories权限页面下配置权限。

我们也可以尝试在 pom 文件中设置 PAT token 而不是变量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?