azure devops - gradle 身份验证

use*_*610 4 gradle build.gradle azure-devops azure-artifacts

我正在尝试使用 azure devops artifacts repo 配置 build.gradle。它早些时候使用 AZURE_ARTIFACTS 凭据工作,但 azure 最近改变了 build.gradle 连接到工件存储库的方式

    url 'https://pkgs.dev.azure.com/dp-name/_packaging/dp-name/maven/v1'
    name 'dp-name'
        authentication {
        basic(BasicAuthentication)
   }
  }
Run Code Online (Sandbox Code Playgroud)

gradle 构建失败并出现以下错误

> Could not resolve all dependencies for configuration ':compileClasspath'.
   > You cannot configure authentication schemes for this repository type if no credentials are provided.

* Try:

Run Code Online (Sandbox Code Playgroud)

小智 6

我遇到过同样的问题。我通过添加maven设置插件解决了这个问题:

buildscript {
...
  dependencies {
    ...
    classpath "net.linguica.gradle:maven-settings-plugin:0.5"
  }
}
apply plugin: 'net.linguica.maven-settings'
Run Code Online (Sandbox Code Playgroud)

之后,gradle 成功获得对 azure feed 的授权。

  • 这也是我的问题。凭据是在“.m2/settings.xml”中设置的,但如果没有上述插件,gradle 就无法访问凭据。如果使用插件块,则另一种选择:`plugins{ id 'net.linguica.maven-settings' version "0.5" } ` (3认同)

Ama*_*icA 6

为了使插件等正确,这对我有用:

azure-pipelines添加token环境变量中:

  - task: Gradle@2
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Run Code Online (Sandbox Code Playgroud)

build.gradlesettings.gradle配置适当的存储库,如下所示:

    repositories {
        maven {
            url = 'https://pkgs.dev.azure.com/<your project>/amplify/_packaging/<your feed>/maven/v1'
            name = '<your feed>'
            credentials {
                username "AzureDevOps"
                password "$System.env.SYSTEM_ACCESSTOKEN"
            }
            authentication {
                basic(BasicAuthentication)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

一些参考:

如何在没有令牌的情况下登录 Azure DevOps Artifact feed

https://medium.com/developer-space/using-external-and-authentication-required-maven-repository-with-gradle-7e2e7c5b795d

https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#systemaccesstoken


Soc*_*j07 5

我在多项目构建中遇到了类似的问题,我可以通过在子项目和插件的文档页面上的提示解决这个问题:https ://docs.gradle.org/current/userguide/plugins.html#sec:subprojects_plugins_dsl

这就是我的根 build.gradle 文件的样子 - 注意:我不必编辑子项目 build.gradle 文件。

plugins {
    id "net.linguica.maven-settings" version "0.5"
}

...

repositories {
    maven {
        url 'https://pkgs.dev.azure.com/<org>/<repoId>/_packaging/platform/maven/v1'
        name '<name>'
        authentication {
            basic(BasicAuthentication)
        }
    }
}

...

subprojects {
    apply plugin: 'net.linguica.maven-settings'

    ...

}
Run Code Online (Sandbox Code Playgroud)


Lan*_*SFT 4

如果它曾经有效但最近失败,您可能需要检查PAT是否仍然有效。尝试创建一个新的PAT并将其用于settings.xml文件中进行检查。

在此输入图像描述

请确保您使用最新的设置方式来配置身份验证:

1.将此部分添加到存储库和发布.存储库容器中的 build.gradle 文件中:

maven {
    url 'https://pkgs.dev.azure.com/xxx/xxx/_packaging/xxx/maven/v1'
    name 'xxx'
    authentication {
        basic(BasicAuthentication)
    }
}
Run Code Online (Sandbox Code Playgroud)

2.添加或编辑${user.home}/.m2中的settings.xml文件:

<server>
  <id>looi</id>
  <username>xxx</username>
  <password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
Run Code Online (Sandbox Code Playgroud)

  • 做了所有这些,但仍然收到错误。我可以发布,但无法从其他应用下载 (2认同)