Mengonfigurasi autentikasi ke Artifact Registry untuk Maven dan Gradle

Anda harus melakukan autentikasi ke Artifact Registry saat menggunakan aplikasi pihak ketiga untuk terhubung ke repositori Artifact Registry. Dokumentasi ini berfokus pada konfigurasi Maven dan Gradle.

Anda tidak perlu mengonfigurasi autentikasi untuk Cloud Build atau Google Cloud lingkungan runtime seperti Google Kubernetes Engine dan Cloud Run, tetapi Anda harus memverifikasi bahwa izin yang diperlukan telah dikonfigurasi. Untuk mempelajari lebih lanjut, lihat informasi tentang Cloud Build dan men-deploy ke lingkungan runtime Google Cloud .

Sebelum memulai

  1. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

    gcloud init

    Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  2. (Opsional) Konfigurasi default untuk perintah gcloud.
  3. Jika Anda mengonfigurasi autentikasi dengan repositori standar, verifikasi kebijakan versi agar Anda dapat mengonfigurasi project Maven dengan benar untuk jenis paket Java yang dapat Anda upload.

    Konsol

    1. Buka halaman Repositories di konsol Google Cloud .

      Buka halaman Repositori

    2. Klik repositori yang ingin Anda autentikasi.

      Bagian Detail menampilkan kebijakan versi. Jika repositori memiliki kebijakan versi snapshot, kolom Izinkan penimpaan snapshot menunjukkan apakah snapshot dapat menimpa versi snapshot yang cocok di repositori.

    gcloud

    Jalankan perintah berikut untuk melihat deskripsi repositori.

    gcloud artifacts repositories describe REPOSITORY \
          --project=PROJECT \
          --location=LOCATION
    

    Di mana

    • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini tidak disertakan dalam perintah.
    • PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau project default akan digunakan.
    • LOCATION adalah lokasi regional atau multi-regional untuk repositori.

    Output perintah ini mencakup informasi tentang kebijakan versi di bagian mavenConfig. Dalam contoh ini, repositori memiliki kebijakan versi snapshot dan snapshot tidak dapat menimpa versi yang identik di repositori.

    Encryption: Google-owned and Google-managed encryption key
    createTime: '2021-10-04T19:39:10.897404Z'
    format: MAVEN
    mavenConfig:
      allowSnapshotOverwrites: false
      versionPolicy: SNAPSHOT
    

    Jika repositori tidak memiliki kebijakan versi, nilai mavenConfig adalah {}.

Ringkasan

Artifact Registry mendukung metode autentikasi berikut.

Menggunakan helper autentikasi
Opsi ini memberikan fleksibilitas paling besar. Saat Anda menyertakan helper dalam konfigurasi Maven atau Gradle, Artifact Registry akan menelusuri kredensial akun layanan di lingkungan.
Menentukan kunci akun layanan sebagai kredensial
Gunakan opsi ini saat aplikasi tidak mendukung Kredensial Default Aplikasi, tetapi mendukung autentikasi dengan nama pengguna dan sandi.

Kunci akun layanan adalah kredensial yang dapat digunakan untuk jangka waktu lama. Gunakan panduan berikut untuk membatasi akses ke repositori Anda:

  • Pertimbangkan untuk menggunakan akun layanan khusus untuk berinteraksi dengan repositori.
  • Berikan peran Artifact Registry minimum yang diperlukan oleh akun layanan. Misalnya, tetapkan peran Pembaca Artifact Registry ke akun layanan yang hanya mendownload artefak.
  • Jika grup di organisasi Anda memerlukan tingkat akses yang berbeda ke repositori tertentu, berikan akses di tingkat repositori, bukan tingkat project.
  • Ikuti praktik terbaik untuk mengelola kredensial.

Mengautentikasi dengan helper kredensial

Artifact Registry menyediakan wagon Maven dan plugin Gradle sebagai pembantu kredensial. Saat Anda menggunakan credential helper, kredensial Anda tidak disimpan di project Java Anda. Sebagai gantinya, Artifact Registry menelusuri kredensial dalam urutan berikut:

  1. Kredensial Default Aplikasi (ADC), strategi yang mencari kredensial dalam urutan berikut:

    1. Kredensial yang ditentukan dalam variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS.

    2. Kredensial yang disediakan oleh akun layanan default untuk Compute Engine, Google Kubernetes Engine, Cloud Run, App Engine, atau fungsi Cloud Run.

  2. Kredensial yang diberikan oleh Google Cloud CLI, termasuk kredensial pengguna dari perintah gcloud auth application-default login.

Variabel GOOGLE_APPLICATION_CREDENTIALS membuat akun untuk autentikasi secara eksplisit, sehingga mempermudah pemecahan masalah. Jika Anda tidak menggunakan variabel, pastikan akun yang mungkin digunakan ADC memiliki izin yang diperlukan. Misalnya, akun layanan default untuk VM Compute Engine, node Google Kubernetes Engine, dan revisi Cloud Run memiliki akses hanya baca ke repositori. Jika Anda berencana mengupload dari lingkungan ini menggunakan akun layanan default, Anda harus mengubah izin.

Menyiapkan akun layanan untuk helper kredensial

Untuk membuat akun layanan dan menyiapkan autentikasi menggunakan variabel lingkungan:

  1. Buat akun layanan untuk bertindak atas nama aplikasi Anda, atau pilih akun layanan yang sudah ada yang Anda gunakan untuk otomatisasi.

    Anda akan memerlukan lokasi file kunci akun layanan untuk menyiapkan autentikasi dengan Artifact Registry. Untuk akun yang ada, Anda dapat melihat kunci dan membuat kunci baru di halaman Akun Layanan.

    Buka halaman Service Accounts

  2. Berikan peran Artifact Registry tertentu ke akun layanan untuk memberikan akses repositori.

  3. Tetapkan lokasi file kunci akun layanan ke variabel GOOGLE_APPLICATION_CREDENTIALS agar helper kredensial Artifact Registry dapat memperoleh kunci Anda saat terhubung dengan repositori.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY-FILE
    

    Dengan KEY-FILE adalah jalur ke file kunci akun layanan.

Mengonfigurasi Maven

  1. Konfigurasi Maven untuk jenis repositori yang Anda gunakan.

    Standar

    1. Jalankan perintah berikut untuk mencetak konfigurasi repositori yang akan ditambahkan ke project Java Anda.

      gcloud artifacts print-settings mvn \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION
      

      Di mana

      • PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau project default akan digunakan.
      • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini tidak disertakan dalam perintah.
      • LOCATION adalah lokasi regional atau multi-regional untuk repositori.
    2. Tambahkan setelan yang ditampilkan ke bagian yang sesuai dalam file pom.xml untuk project Maven Anda. Lihat referensi POM Maven untuk mengetahui detail tentang struktur file.

      Contoh berikut menunjukkan setelan untuk repositori yang menyimpan versi snapshot dan rilis.

      <distributionManagement>
        <snapshotRepository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </snapshotRepository>
        <repository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </repository>
      </distributionManagement>
      
      <repositories>
        <repository>
          <id>artifact-registry</id>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</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.5</version>
          </extension>
        </extensions>
      </build>
      

      Elemen <release> dan <snapshot> menunjukkan apakah repositori menyimpan paket rilis, paket snapshot, atau keduanya. Setelan ini harus sesuai dengan kebijakan versi repositori.

      Elemen <build> menentukan wagon Artifact Registry sebagai ekstensi. Untuk mengetahui informasi tentang wagon, lihat dokumentasi untuk alat Maven Artifact Registry.

    Jarak jauh atau virtual

    Edit file pom.xml di project Anda. Lihat referensi POM Maven untuk mengetahui detail tentang struktur file.

    Contoh berikut menunjukkan setelan untuk repositori jarak jauh yang menyimpan versi snapshot dan rilis. Dalam contoh ini, project memiliki dependensi pada versi paket Guava.

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.google.hello</groupId>
      <artifactId>repo-config</artifactId>
      <version>4.1-SNAPSHOT</version>
      <description>version 1 release</description>
    
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>28.0-jre</version>
        </dependency>
      </dependencies>
    
      <repositories>
        <repository>
          <id>central</id>
          <name>Maven Central remote repository</name>
          <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url>
          <layout>default</layout>
          <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.5</version>
          </extension>
        </extensions>
      </build>
    </project>
    
    • Bagian <repositories> menentukan repositori Artifact Registry. Untuk repositori jarak jauh, elemen <id> harus ditetapkan ke central. Setelan ini menggantikan nilai default untuk ID repositori central yang diwarisi dari Super POM.

    • Bagian <build> menetapkan wagon Artifact Registry sebagai ekstensi. Untuk mengetahui informasi tentang wagon, lihat dokumentasi untuk alat Maven Artifact Registry.

    • Dalam contoh ini, bagian <dependencies> menetapkan dependensi pada versi paket Guava 28.0-jre.

  2. Maven menyelesaikan beberapa dependensi sebelum menerapkan wagon yang ditentukan dalam pom.xml, termasuk:

    • Referensi dalam project Maven turunan ke project induk menggunakan elemen <parent>.
    • Dependensi plugin yang disimpan di Artifact Registry.

    Jika project Anda perlu menyelesaikan dependensi ini, Anda harus menggunakan mekanisme ekstensi inti untuk memastikan Maven dapat menemukan file POM induk dan plugin.

    Dalam project Anda, buat file ${maven.projectBasedir}/.mvn/extensions.xml dengan konten berikut. Elemen <extension> menentukan gerobak.

    <extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.2.5</version>
      </extension>
    </extensions>
    

    Maven kini dapat menyelesaikan dependensi induk atau plugin dari Artifact Registry.

Konfigurasi autentikasi Anda selesai.

Mengonfigurasi Gradle

  1. Konfigurasi Gradle untuk jenis repositori yang Anda gunakan.

    Standar

    1. Jalankan perintah berikut untuk mencetak konfigurasi repositori yang akan ditambahkan ke project Java Anda.

      gcloud artifacts print-settings gradle \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION
      

      Di mana

      • PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau project default akan digunakan.
      • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini tidak disertakan dalam perintah.
      • LOCATION adalah lokasi regional atau multi-regional untuk repositori.
    2. Tambahkan setelan repositori ke file build.gradle Anda. Contoh berikut menunjukkan lokasi relatif bagian yang dicetak.

      plugins {
        id "maven-publish"
        id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.5"
      }
      
      publishing {
        publications {
          mavenJava(MavenPublication) {
            groupId 'maven.example.id'
            from components.java
           }
        }
        repositories {
          maven {
            url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
          }
        }
      }
      repositories {
        maven {
          url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
        }
      }
      
      • Bagian plugins mendeklarasikan plugin Artifact Registry. Untuk mengetahui informasi tentang plugin, lihat dokumentasi untuk alat Maven Artifact Registry.

      • Bagian publishing menentukan file yang akan diupload dan repositori Artifact Registry target. Anda dapat memperbarui daftar file di bagian publications saat Anda siap mengupload. Untuk mengetahui informasi tentang setelan publikasi, lihat dokumentasi plugin Maven Publish.

    Jarak jauh atau virtual

    Tambahkan setelan repositori ke file build.gradle Anda.

    Contoh berikut menunjukkan setelan untuk repositori jarak jauh. Dalam contoh ini, project memiliki dependensi pada versi paket Guava.

    plugins {
      id 'java'
      id "maven-publish"
      id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.5"
      id 'maven'
    }
    
    repositories {
      maven {
        url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME"
      }
    }
    dependencies {
      compile "com.google.guava:guava:31.1-jre"
    }
    
    • Bagian plugins mendeklarasikan plugin Artifact Registry. Untuk mengetahui informasi tentang plugin, lihat dokumentasi untuk alat Maven Artifact Registry.

    • Bagian repositories menentukan repositori Artifact Registry.

    • Dalam contoh ini, bagian dependencies menetapkan dependensi pada versi paket Guava 31.1-jre.

    Tentukan dependensi untuk paket Anda di bagian dependencies.

  2. Jika perlu menggunakan repositori dalam file init.gradle atau settings.gradle, Anda dapat menambahkan konfigurasi plugin ke file tersebut.

    Untuk init.gradle, tambahkan konfigurasi berikut:

    initscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.5"
      }
    }
    apply plugin: com.google.cloud.artifactregistry.gradle.plugin.ArtifactRegistryGradlePlugin
    

    Untuk settings.gradle, tambahkan konfigurasi berikut:

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"              }
        }
      dependencies {
        classpath "gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.2.5"
      }
    }
    apply plugin: "com.google.cloud.artifactregistry.gradle-plugin"
    

Konfigurasi autentikasi Anda selesai.

Mengonfigurasi autentikasi sandi

Gunakan pendekatan ini saat aplikasi Java Anda memerlukan autentikasi dengan nama pengguna dan sandi tertentu.

Menyiapkan akun layanan untuk autentikasi sandi

Untuk membuat akun layanan:

  1. Buat akun layanan untuk bertindak atas nama aplikasi Anda, atau pilih akun layanan yang sudah ada yang Anda gunakan untuk otomatisasi.

    Anda akan memerlukan lokasi file kunci akun layanan untuk menyiapkan autentikasi dengan Artifact Registry. Untuk akun yang ada, Anda dapat melihat kunci dan membuat kunci baru di halaman Akun Layanan.

    Buka halaman Service Accounts

  2. Jika Anda ingin mengaktifkan akun layanan di sesi gcloud CLI saat ini, jalankan perintah:

    gcloud auth activate-service-account ACCOUNT --key-file=KEY-FILE
    

    Di mana

    • ACCOUNT adalah akun pengguna atau akun layanan.
    • KEY-FILE adalah jalur ke file kunci JSON akun layanan.

Mengonfigurasi Maven

  1. Konfigurasi Maven untuk jenis repositori yang Anda gunakan.

    Standar

    1. Jalankan perintah berikut untuk mencetak konfigurasi repositori yang akan ditambahkan ke project Java Anda.

      gcloud artifacts print-settings mvn \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION \
          --json-key=KEY-FILE
      

      Di mana

      • PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau project default akan digunakan.
      • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini tidak disertakan dalam perintah.
      • LOCATION adalah lokasi regional atau multi-regional untuk repositori.
      • KEY-FILE adalah jalur ke file kunci JSON akun layanan.

    Perintah ini menampilkan setelan yang akan disertakan dalam project Java Anda, termasuk versi kunci pribadi Anda yang dienkode base64.

    1. Tambahkan setelan repositori yang ditampilkan dalam elemen <project> ke bagian yang sesuai dari file pom.xml untuk project Maven Anda. Lihat referensi POM Maven untuk mengetahui detail tentang struktur file.
    <project>
      <distributionManagement>
        <snapshotRepository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </snapshotRepository>
        <repository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
        </repository>
      </distributionManagement>
    
      <repositories>
        <repository>
          <id>artifact-registry</id>
          <url>https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </project>
    

    Elemen <release> dan <snapshot> menunjukkan apakah repositori menyimpan paket rilis, paket snapshot, atau keduanya. Setelan ini harus sesuai dengan kebijakan versi repositori.

    1. Tambahkan setelan autentikasi yang ditampilkan di elemen <settings> ke bagian <servers> dari file ~/.m2/settings.xml. Dalam contoh berikut, KEY adalah kunci berenkode base64 dari file kunci Anda.

    Lihat Referensi setelan Maven untuk mengetahui informasi selengkapnya.

    <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>
    

    Jarak jauh atau virtual

    1. Tambahkan setelan repositori ke bagian yang sesuai dari file pom.xml untuk project Maven Anda. Lihat referensi POM Maven untuk mengetahui detail tentang struktur file.

      <repositories>
        <repository>
           <id>central</id>
           <name>Maven Central remote repository</name>
           <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/REMOTE-REPOSITORY-NAME</url>
           <layout>default</layout>
           <releases>
             <enabled>true</enabled>
           </releases>
           <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      

    Bagian <repositories> menentukan repositori Artifact Registry. Untuk repositori jarak jauh, elemen <id> harus ditetapkan ke central. Setelan ini menggantikan nilai default untuk ID repositori central yang diwarisi dari Super POM.

    1. Lakukan encoding base64 pada file kunci Anda dengan perintah berikut. Ganti KEY-FILE dengan nama file kunci Anda.

      base64 -w 0 KEY-FILE
      
    2. Tambahkan setelan autentikasi di elemen <settings> ke bagian <servers> file ~/.m2/settings.xml.

    Lihat Referensi setelan Maven untuk mengetahui informasi selengkapnya.

    <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>
    
    1. Jika Anda menggunakan endpoint HTTP dan ingin menggunakan konektivitas Maven native untuk mengautentikasi, Anda dapat meneruskan header autentikasi menggunakan header HTTP Kustom di settings.xml.

    Contoh:

    <settings>
    <servers>
      <server>
        <id>artifact-registry</id>
        <configuration>
          <httpHeaders>
            <property>
              <name>Authorization </name>
              <value>Bearer ${artifact.registry.token}</value>
            </property>
          </httpHeaders>
          <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>
      </server>
    </servers>
    </settings>
    

Konfigurasi autentikasi Anda selesai.

Mengonfigurasi Gradle

  1. Konfigurasi Gradle untuk jenis repositori yang Anda gunakan.

    Standar

    1. Jalankan perintah berikut untuk mencetak konfigurasi repositori yang akan ditambahkan ke project Java Anda.

      gcloud artifacts print-settings gradle \
          --project=PROJECT \
          --repository=REPOSITORY \
          --location=LOCATION \
          --json-key=KEY-FILE
      

      Di mana

      • PROJECT adalah project ID.
      • REPOSITORY adalah ID atau ID yang sepenuhnya memenuhi syarat untuk repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini tidak disertakan dalam perintah.
      • KEY-FILE adalah jalur ke file kunci JSON akun layanan. Jika Anda menjalankan perintah untuk mengaktifkan akun layanan, Anda dapat menghilangkan flag ini.

      Perintah ini menampilkan setelan yang akan disertakan dalam project Java Anda, termasuk versi kunci pribadi Anda yang dienkode base64.

    2. Baris berikut dari konfigurasi yang ditampilkan menentukan variabel bernama artifactRegistryMavenSecret untuk kunci akun layanan Anda. Tambahkan baris ini ke file ~/.gradle/gradle.properties Anda agar kunci tidak terlihat di build atau repositori kontrol sumber Anda.

      artifactRegistryMavenSecret = KEY
      

      Pada baris ini, KEY adalah kunci pribadi di file kunci akun layanan Anda. Untuk _json_key_base64, artifactRegistryMavenSecret disetel ke kunci berenkode base64 sebagai sandi Anda.

    3. Di build.gradle, tentukan setelan repositori:

      plugins {
        id "maven-publish"
      }
      
      publishing {
        publications {
          mavenJava(MavenPublication) {
            groupId 'maven.example.id'
            from components.java
          }
        }
        repositories {
          maven {
            url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
            credentials {
              username = "_json_key_base64"
              password = "$artifactRegistryMavenSecret"
            }
            authentication {
              basic(BasicAuthentication)
            }
          }
        }
      }
      repositories {
        maven {
          url "https://LOCATION-maven.pkg.dev/PROJECT/REPOSITORY"
          credentials {
            username = "_json_key_base64"
            password = "$artifactRegistryMavenSecret"
          }
          authentication {
            basic(BasicAuthentication)
          }
        }
      }
      
      • Bagian repositories menetapkan URL dan kredensial repositori untuk autentikasi.
      • Bagian publishing menentukan file yang akan diupload dan repositori Artifact Registry target. Anda dapat memperbarui daftar file di bagian publications saat Anda siap mengupload. Untuk mengetahui informasi tentang setelan publikasi, lihat dokumentasi plugin Maven Publish.

    Jarak jauh atau virtual

    1. Lakukan encoding base64 pada file kunci Anda dengan perintah berikut. Ganti KEY-FILE dengan nama file kunci Anda.

      base64 -w 0 KEY-FILE
      
    2. Di file ~/.gradle/gradle.properties, tambahkan baris berikut agar kunci Anda tidak terlihat di build atau repositori kontrol sumber Anda.

      artifactRegistryMavenSecret = KEY
      

      Pada baris ini, KEY adalah konten file kunci berenkode base64 Anda.

    3. Tambahkan setelan repositori ke file build.gradle Anda.

    Contoh berikut menunjukkan konfigurasi repositori jarak jauh.

    plugins {
      id 'java'
      id "maven-publish"
      id 'maven'
    }
    
    repositories {
      maven {
        url "artifactregistry://LOCATION-maven.pkg.dev /PROJECT_ID/REMOTE-REPOSITORY-NAME"
        credentials {
        username = "_json_key_base64"
        password = "$artifactRegistryMavenSecret"
      }
      authentication {
        basic(BasicAuthentication)
      }
      dependencies {
        compile "com.google.guava:guava:31.1-jre"
      }
    
    • Bagian repositories menentukan repositori Artifact Registry.

    • Dalam contoh ini, bagian dependencies menetapkan dependensi pada versi paket Guava 31.1-jre.

    Tentukan dependensi untuk paket Anda di bagian dependencies.

Konfigurasi autentikasi Anda selesai.

Langkah berikutnya