使用免費方案的直接存放區存取權下載 Java 套件

在免費方案中,Assured Open Source Software (Assured OSS) 套件會託管於 Google 代管的 Artifact Registry 存放區。如要直接存取及下載 Java 套件,可以連線至 Assured OSS 的 Artifact Registry 存放區。

本文僅適用於免費方案。如需進階級,請參閱「使用直接存放區存取權下載 Java 套件」。

事前準備

  1. 請要求管理員授予您組織的服務帳戶金鑰管理員 (roles/iam.serviceAccountKeyAdmin) IAM 角色。您需要這項權限,才能取得服務帳戶金鑰的 Base64 編碼字串。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

  2. 設定 Assured OSS。如要使用免費方案,請提交客戶啟用表單,啟用 Assured OSS 存取權。

  3. 驗證所要求服務帳戶與 Assured OSS 的連線能力。

  4. 啟用 Artifact Registry API,用於存取 Assured OSS 的服務帳戶父項 Google Cloud 專案。

  5. 安裝最新版本的 Google Cloud CLI。如果您先前已安裝 Google Cloud CLI,請執行下列指令,確認您使用的是最新版本:

    gcloud components update
    

設定驗證方法

Artifact Registry 支援下列驗證方式:

  • 使用憑證輔助程式進行驗證
  • 使用密碼驗證

以下各節說明如何設定這些驗證方式。

使用憑證輔助程式進行驗證

Artifact Registry 提供 Maven wagon 和 Gradle 外掛程式,可做為憑證輔助程式。這個選項的彈性最高。

如要設定應用程式預設憑證,請參閱「設定驗證機制」。

設定憑證輔助程式

根據建構工具進行下列變更,使用憑證輔助程式設定驗證:

Maven

<project>
  <build>
    <extensions>
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.2.0</version>
      </extension>
    </extensions>
  </build>
</project>

Gradle

plugins {
  id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
}

使用密碼驗證

如果 Java 應用程式需要使用指定的使用者名稱和密碼進行驗證,請使用密碼進行驗證。根據建構工具變更設定:

Maven

在 ~/.m2/settings.xml 檔案的 settings 區段中,新增下列驗證設定。如果檔案不存在,請建立檔案。詳情請參閱 Maven 設定參考資料。

<settings>
  <servers>
    <server>
      <id>artifact-registry</id>
      <configuration>
        <httpConfiguration>
          <get>
            <usePreemptive>true</usePreemptive>
          </get>
          <head>
            <usePreemptive>true</usePreemptive>
          </head>
          <put>
            <params>
              <property>
                <name>http.protocol.expect-continue</name>
                <value>false</value>
              </property>
            </params>
          </put>
        </httpConfiguration>
      </configuration>
      <username>_json_key_base64</username>
      <password>KEY</password>
    </server>
  </servers>
</settings>

將 KEY 替換為整個服務帳戶 JSON 金鑰檔案的 Base64 編碼。請執行下列指令來進行這項操作:

cat KEY_FILE_LOCATION  | base64

其中 KEY_FILE_LOCATION 是服務帳戶 JSON 金鑰檔案的位置。

Gradle

在 ~/.gradle/gradle.properties 檔案中新增下列程式碼,這樣金鑰就不會顯示在建構作業或原始碼控制存放區中。

artifactRegistryMavenSecret = KEY

將 KEY 替換為服務帳戶 JSON 金鑰檔案中的私密金鑰。如果是 json_key_base64,artifactRegistryMavenSecret 包含 base64 加密密碼。例如:base64 -w 0 KEY。

在 build.gradle 檔案中,使用下列範例指定存放區設定:

repositories {
  maven {
    url "artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java"
    credentials {
      username = "_json_key_base64"
      password = "$artifactRegistryMavenSecret"
    }
    authentication {
      basic(BasicAuthentication)
    }
  }
}

更新專案設定檔,指向存放區

Maven

在 Maven 專案的 pom.xml 檔案中,將下列設定新增至適當區段。請勿取代驗證設定。

<project>
  <repositories>
    <repository>
      <id>artifact-registry</id>
      <url>artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
</project>

如要進一步瞭解檔案結構,請參閱 Maven POM 參考資料。

Gradle

在 build.gradle 檔案中指定下列存放區設定。請勿取代驗證設定。

repositories {
  maven {
  url "artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java"
  }
}

更新專案設定檔,新增依附元件

如要下載構件做為建構作業的一部分,必須將構件宣告為依附元件。

Maven

在 Maven 專案的 pom.xml 檔案中,宣告要下載的套件。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>

Gradle

在 build.gradle 檔案中宣告要下載的套件。

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
}

存取 Assured OSS 未提供的 Java 套件

您可以存取 Assured OSS 的 Artifact Registry 存放區中未提供的套件。

Assured OSS 已預設為偏好存放區,並使用 Maven Central 或 PyPI 等標準公開存放區做為次要存放區。如要使用 (預先發布版) 功能,請指向下列網址:

https://us-maven.pkg.dev/cloud-aoss/java

列出 Assured OSS 中所有可用的 Java 套件

如要使用 API 取得 Artifact Registry 存放區中所有可用 Java 套件的清單,請參閱「列出 Assured OSS 中所有可用的 Java 套件」。

後續步驟