【发布时间】:2022-11-23 11:33:27
【问题描述】:
我正在设置一个共享代码库,并已设法构建工件并使用个人访问令牌将它们发布到提要,但我想将发布移动到 Azure Pipeline。我正在尝试将构建帐户与构建时可用的访问令牌 (System.AccessToken) 一起使用,但我从 Azure Artifacts 收到 403 错误。 [项目] 构建服务 ([Org]) 帐户被添加为订阅源的贡献者。
我有一个具有以下配置的 build.gradle.kts 文件(已替换敏感信息):
publishing {
publications {
create<MavenPublication>("private") {
groupId = "[groupId]"
artifactId = "shared"
version = "0.0.1"
artifact("./build/libs/lib.jar")
}
}
repositories {
maven(url = "https://pkgs.dev.azure.com/[Org]/[Project]/_packaging/maven-private/maven/v1") {
name = "maven-private"
credentials {
username = System.getenv("AZURE_DEVOPS_USER")
password = System.getenv("AZURE_DEVOPS_ACCESS_TOKEN")
}
}
}
}
和 Azure 管道配置:
trigger:
- main
pr: none
resources:
- repo: self
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Gradle@2
inputs:
gradleWrapperFile: 'gradlew'
workingDirectory: '$(Build.SourcesDirectory)'
tasks: 'build'
javaHomeOption: 'JDKVersion'
- task: Gradle@2
env:
AZURE_DEVOPS_USER: "[Project] Build Service ([Org])"
AZURE_DEVOPS_ACCESS_TOKEN: $(System.AccessToken)
inputs:
gradleWrapperFile: 'gradlew'
workingDirectory: '$(Build.SourcesDirectory)'
tasks: 'publish'
javaHomeOption: 'JDKVersion'
发布步骤失败并出现以下错误:
Execution failed for task ':lib:publishPrivatePublicationToMaven-privateRepository'.
> Failed to publish publication 'private' to repository 'maven-private'
> Could not PUT 'https://pkgs.dev.azure.com/[Org]/[Project]/_packaging/maven-private/maven/v1/[groupId]/shared/0.0.1/shared-0.0.1.jar'. Received status code 403 from server: Forbidden - User '[userId]' lacks permission to complete this action. You need to have 'ReadPackages'.
我不知道如何进行调试,有人有什么建议吗?
【问题讨论】:
标签: azure gradle azure-devops azure-pipelines azure-artifacts