You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java jar包发布到Azure DevOps的Artifacts板块

解决方案

你目前使用的PublishBuildArtifacts@1任务的作用是将构件上传到当前流水线运行的关联构件存储区,仅和本次流水线绑定,不会同步到全局Artifacts板块的制品源中,要实现目标可以按以下步骤操作:

1. 前置准备:创建Maven制品源

进入项目的Artifacts板块,点击「创建源」,类型选择Maven,配置好源的名称、可见范围后保存。

2. 配置流水线发布构件到制品源

推荐两种常用实现方式:

方式一:通过Gradle maven-publish插件发布(推荐)

第一步:修改项目的build.gradle配置

添加maven-publish插件,配置发布信息:

plugins {
    id 'java'
    id 'maven-publish'
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            // 替换为实际的构件坐标
            groupId = 'com.yourcompany.commons'
            artifactId = 'commons'
            version = '1.0.0'
            // 指向构建生成的jar包
            artifact jar
        }
    }

    repositories {
        maven {
            // 该地址可在你创建的Maven源中点击「连接到源」选择Gradle获取
            url = 'https://pkgs.dev.azure.com/你的组织名/_packaging/你的制品源名称/maven/v1'
            credentials {
                username = "azdevops"
                // 从流水线环境变量读取令牌,无需硬编码
                password = System.getenv("AZURE_ARTIFACTS_TOKEN")
            }
        }
    }
}

第二步:修改流水线配置

替换原来的PublishBuildArtifacts@1任务,添加Maven认证和发布任务:

steps:
- checkout: self
  path: 'my-repo/'
# 新增:Azure Artifacts Maven认证任务,自动注入访问令牌
- task: MavenAuthenticate@0
  inputs:
    artifactsFeeds: '你创建的制品源名称'
- task: Gradle@2
  displayName: Test and build jar & publish
  inputs:
    gradleWrapperFile: 'gradlew'
    # 新增publish任务
    tasks: 'build publish'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    # 将认证拿到的令牌传递给Gradle
    options: '-DAZURE_ARTIFACTS_TOKEN=$(System.AccessToken)'

方式二:通过Azure官方MavenPublish任务发布

如果不想修改项目的build.gradle配置,可以直接用官方任务上传:

steps:
- checkout: self
  path: 'my-repo/'
- task: Gradle@2
  displayName: Test and build jar
  inputs:
    gradleWrapperFile: 'gradlew'
    tasks: 'build'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
- task: MavenPublish@1
  inputs:
    # 直接指定jar包信息,无需额外配置pom文件
    jarFile: '$(System.DefaultWorkingDirectory)/build/libs/commons.jar'
    groupId: 'com.yourcompany.commons'
    artifactId: 'commons'
    version: '1.0.0'
    artifactsFeed: '你创建的制品源名称'

3. 权限校验

若发布时出现401无权限报错,可检查两个配置:

  1. 流水线当前作业的设置中已开启「允许脚本访问OAuth令牌」选项
  2. 制品源权限设置中,已给「项目集合构建服务(你的组织名)」账号分配了「贡献者」权限

配置完成后运行流水线,构建成功后即可在Artifacts板块的对应源中找到发布的jar包,后续本地Gradle添加对应源配置即可直接拉取依赖。

内容的提问来源于stack exchange,提问作者slipperypete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:24:05