使用 Azure Pipelines 发布 Maven 项目(YAML/经典)

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

Azure Pipelines 使开发人员能够将 Maven 工件发布到同一组织内、跨其他组织的 Azure Artifacts 源以及 Maven Central 等公共注册表。 本文介绍如何使用 YAML 和经典管道发布 Maven 项目。

先决条件

产品 要求
Azure DevOps - Azure DevOps 组织和项目
- Azure Artifacts
- 工作管道
- 权限:
    - 若要授予对项目中所有管道的访问权限,你必须是项目管理员组的成员。
    - 若要创建服务连接,您必须具有 服务连接管理员创建者 角色。

将包发布到同一组织中的源

  1. 登录到 Azure DevOps 组织,并导航到你的项目。
  1. 登录到 Azure DevOps 集合,然后导航到项目。
  1. 选择管道,然后选择您的管道定义。
  1. 选择 “编辑”,然后将以下代码片段添加到 YAML 管道:

    steps:
    - task: MavenAuthenticate@0
      displayName: 'Authenticate to Azure Artifacts feed'
      inputs:
        artifactsFeeds: 'MavenDemo,MavenDemoFeed2'        ## Select one or multiple feeds to authenticate with.
    - script: |
       mvn deploy
      displayName: 'Publish'
    

注释

若要使用 Azure Pipelines 将包发布到馈送,请确保在馈送设置中,为 项目集合生成服务 和项目的 生成服务 身份分配 馈送发布者(贡献者) 角色。 有关更多详细信息,请参阅管理权限

将包发布到其他组织中的源

若要将包发布到其他 Azure DevOps 组织中的源,必须先在目标组织中创建个人访问令牌(PAT),然后使用该 PAT 创建服务连接并使用目标源进行身份验证。

创建个人访问令牌

  1. 导航到托管目标源的组织。

  2. 创建一个具有打包>范围的个人访问令牌

  3. 复制你的个人访问令牌,以供在以下部分中使用。

创建服务连接

  1. 登录到管道运行所在的 Azure DevOps 组织,然后导航到你的项目。

  2. 导航到项目设置>服务连接

  3. 依次选择新建服务连接Maven下一步

  4. 对于 身份验证方法,请选择 “用户名和密码”。 输入 存储库 URL存储库 ID

  5. “用户名 ”字段中输入任何字符串值(这是必需的,但 Azure Pipelines 将使用 pom.xml 之前创建的配置和个人访问令牌进行身份验证)。

    • 对于 密码,请粘贴之前创建的个人访问令牌。
    • 为服务连接提供 名称
    • 选中“ 授予对所有管道的访问权限 ”复选框。
  6. 完成时选择保存

发布包

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择管道,然后选择您的管道定义。

  3. 选择 “编辑”,然后将以下代码片段添加到 YAML 管道:

    steps:
    - task: MavenAuthenticate@0
      displayName: 'Authenticate to Azure Artifacts feed'
      inputs:
        MavenServiceConnections: <NAME_OF_YOUR_SERVICE_CONNECTION> 
    
    - script: |
       mvn deploy
      displayName: 'Publish'