在 Artifact Registry 中存储 Java 软件包

本快速入门介绍如何设置专用 Artifact Registry Maven 制品库,并向其中上传软件包。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Artifact Registry API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Artifact Registry API。

    启用 API

启动 Cloud Shell

在本快速入门中,您将使用 Cloud Shell,这是一个用于管理 Google Cloud 上托管的资源的 shell 环境。

Cloud Shell 预安装有 Google Cloud CLI 和 Java。gcloud CLI 提供了 Google Cloud 的主要命令行界面。

启动 Cloud Shell:

  1. 转到 Google Cloud 控制台。

    Google Cloud 控制台

  2. 在 Google Cloud 控制台工具栏中,点击激活 Cloud Shell

控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

创建 Java 软件包代码库

为 Java 工件创建代码库。

  1. 创建代码库:

控制台

  1. 打开 Google Cloud 控制台中的制品库页面。

    打开“代码库”页面

  2. 点击创建代码库

  3. 指定 quickstart-java-repo 作为该代码库的名称。

  4. 选择 Maven 格式和标准模式。

  5. 位置类型下,选择区域,然后选择位置 us-central1

  6. 点击创建

    该代码库会被添加到代码库列表中。

gcloud

  1. 运行以下命令,在位置 us-central1 中名为 quickstart-java-repo 的当前项目中创建一个新的 Java 软件包代码库。

    gcloud artifacts repositories create quickstart-java-repo --repository-format=maven \
    --location=us-central1 --description="Java package repository"
    
  2. 运行以下命令确认已创建代码库:

    gcloud artifacts repositories list
    

    如需详细了解 Artifact Registry 命令,请运行 gcloud artifacts 命令。

配置 Maven

  1. 选择您要使用的简单 Maven 项目。

    如果您没有简单的项目,可以在 5 分钟内创建 Maven 项目。

    本快速入门假定您的简单项目没有在 Artifact Registry 中存储其他父级或插件依赖项。如需详细了解如何在 Artifact Registry 中使用依赖项配置 Maven 项目,请参阅使用凭据帮助程序进行身份验证

  2. 为了简化 gcloud 命令,请将默认代码库设置为 quickstart-java-repo,并将默认位置设置为 us-central1。设置以上值之后,您无需在需要代码库或位置的 gcloud 命令中指定这些值。

    如需设置代码库,请运行以下命令:

    gcloud config set artifacts/repository quickstart-java-repo
    

    如需设置位置,请运行以下命令:

    gcloud config set artifacts/location us-central1
    

    如需详细了解这些命令,请参阅 gcloud config set 文档。

  3. 运行以下命令以输出默认 quickstart-java-repo 代码库的设置。

    gcloud artifacts print-settings mvn
    

    gcloud 命令的输出类似于以下代码段,其中,PROJECT 是您的项目 ID。

    <distributionManagement>
      <snapshotRepository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
      </snapshotRepository>
      <repository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
      </repository>
    </distributionManagement>
    
    <repositories>
      <repository>
        <id>artifact-registry</id>
        <url>artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>
    
    <build>
      <extensions>
        <extension>
          <groupId>com.google.cloud.artifactregistry</groupId>
          <artifactId>artifactregistry-maven-wagon</artifactId>
          <version>2.2.1</version>
        </extension>
      </extensions>
    </build>
    
  4. 将设置添加到 Maven 项目的 pom.xml 文件中。以下概览显示了每个主要元素的相对位置。如需详细了解文件的结构,请参阅 Maven 的 POM 参考文档

    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                          http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
      <!-- Build Settings -->
      <build>
        ...
        <extensions>...</extensions>
      </build>
    
      <!-- Environment Settings -->
      <repositories>...</repositories>
      <distributionManagement>...</distributionManagement>
    </project>
    

您的 Maven 项目现在可以将软件包上传到您的代码库中。

配置 Gradle

创建一个简单的 Gradle 项目,以将软件包部署到您创建的 Artifact Registry 代码库。如果您没有 Gradle 测试 build,可以按照入门级 Gradle 教程创建一个简单的 Gradle build。

为了简化 gcloud 命令,请将默认代码库设置为 quickstart-java-repo,并将默认位置设置为 us-central1。设置以上值之后,您无需在需要代码库或位置的 gcloud 命令中指定这些值。

如需设置代码库,请运行以下命令:

gcloud config set artifacts/repository quickstart-java-repo

如需设置位置,请运行以下命令:

gcloud config set artifacts/location us-central1

如需详细了解这些命令,请参阅 gcloud config set 文档。

  1. 将用于连接代码库的设置添加到 build.gradle 文件中。以下命令将输出要为默认 quickstart-java-repo 代码库添加的设置。

    gcloud artifacts print-settings gradle
    

    gcloud 命令的输出类似如下所示,其中,PROJECT 是您的项目 ID。

    plugins {
      id "maven-publish"
      id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1"
          }
    
    publishing {
      repositories {
        maven {
          url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
        }
      }
    }
    
    repositories {
      maven {
        url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
      }
    }
    
  2. 验证 build.gradle 文件包含 publications 部分。如果没有,请将它添加到 build.gradle 文件中。

    publications 部分是 publishing 的子级,如以下示例所示:

    publishing {
      publications {
           mavenJava(MavenPublication) {
              groupId  'maven.example.id'
              from components.java
           }
      }
      repositories {
        maven {
          url "artifactregistry://us-central1-maven.pkg.dev/PROJECT/quickstart-java-repo"
        }
      }
    }
    

    您还可以将代码库配置添加到 init.gradlesettings 文件中。如需详细了解这些选项,请参阅设置身份验证

    将软件包上传到代码库

    对于 Maven,您可以使用 mvn deploymvn release 将软件包添加到代码库中。

    对于 Gradle,请使用 gradle publish 命令将软件包上传到代码库。

    查看代码库中的软件包

    如需验证您的软件包是否已添加到代码库中,请执行以下操作:

    控制台

    1. 打开 Google Cloud 控制台中的制品库页面。

      打开“代码库”页面

    2. 在代码库列表中,点击 quickstart-java-repo 代码库。

      软件包页面列出代码库中的软件包。

    gcloud

    1. 如需列出 quickstart-java-repo 代码库中的软件包,请运行以下命令:

      gcloud artifacts packages list --repository=quickstart-java-repo
      

      输出将如下所示:

      Listing items under project <project-id>, location us-central1,\
      repository quickstart-java-repo.
      
      PACKAGE: maven.example.id:gradle-demo
      CREATE_TIME: 2022-01-20T22:46:07
      UPDATE_TIME: 2022-01-20T22:46:07
      

      其中 maven.example.id:gradle-demo软件包 ID

      如需查看软件包的版本,请运行以下命令:

      gcloud artifacts versions list --package=PACKAGE
      

      其中 PACKAGE 是软件包 ID。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

在移除代码库之前,请确保已在其他位置保存了您要保留的任何软件包。

如需删除代码库,请执行以下操作:

控制台

  1. 打开 Google Cloud 控制台中的制品库页面。

    打开“代码库”页面

  2. 在代码库列表中,选择 quickstart-java-repo 代码库。

  3. 点击删除

gcloud

  1. 如需删除 quickstart-java-repo 代码库,请运行以下命令:

    gcloud artifacts repositories delete quickstart-java-repo
    
  2. 如果要移除您为活跃 gcloud 配置配置的默认代码库和位置设置,请运行以下命令:

    gcloud config unset artifacts/repository
    gcloud config unset artifacts/location
    

后续步骤