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 的授权。
为了使插件等正确,这对我有用:
在azure-pipelines添加token环境变量中:
- task: Gradle@2
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Run Code Online (Sandbox Code Playgroud)
在build.gradle或settings.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 ://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)
如果它曾经有效但最近失败,您可能需要检查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)
| 归档时间: |
|
| 查看次数: |
2683 次 |
| 最近记录: |