Mengonfigurasi autentikasi ke Artifact Registry untuk Maven dan Gradle

Anda harus mengautentikasi 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 lingkungan runtime Cloud Build atau Google Cloud 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. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  2. (Opsional) Konfigurasikan 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 Details menampilkan kebijakan versi. Jika repositori memiliki kebijakan versi snapshot, kolom Izinkan penggantian snapshot akan 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
    

    Dari mana

    • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari perintah.
    • PROJECT adalah project ID. Jika flag ini dihilangkan, project default atau project saat ini 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-managed 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 jika 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 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 Maven wagon dan plugin Gradle sebagai helper kredensial. Saat menggunakan helper kredensial, kredensial Anda tidak disimpan dalam project Java. Sebagai gantinya, Artifact Registry menelusuri kredensial dalam urutan berikut:

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

    1. Kredensial yang ditentukan dalam variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS.

    2. Kredensial yang disediakan 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 menjadi 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 ingin 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 ada yang Anda gunakan untuk otomatisasi.

    Anda 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 sehingga 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. Konfigurasikan Maven untuk jenis repositori yang Anda gunakan.

    Standard

    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
      

      Dari mana

      • PROJECT adalah project ID. Jika flag ini dihilangkan, project default atau project saat ini akan digunakan.
      • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari 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.3</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 informasi tentang wagon, lihat dokumentasi untuk alat Maven Artifact Registry.

    Jarak jauh atau virtual

    Edit file pom.xml dalam 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.3</version>
          </extension>
        </extensions>
      </build>
    </project>
    
    • Bagian <repositories> menentukan repositori Artifact Registry. Untuk repositori jarak jauh, elemen <id> harus ditetapkan ke central. Setelan ini mengganti nilai default untuk ID repositori central yang diwarisi dari Super POM.

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

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

  2. Maven me-resolve 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 me-resolve dependensi ini, Anda harus menggunakan mekanisme ekstensi inti untuk memastikan Maven dapat menemukan file dan plugin POM induk.

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

    <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.3</version>
      </extension>
    </extensions>
    

    Maven kini dapat me-resolve dependensi induk atau plugin dari Artifact Registry.

Konfigurasi autentikasi Anda selesai.

Mengonfigurasi Gradle

  1. Konfigurasikan Gradle untuk jenis repositori yang Anda gunakan.

    Standard

    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
      

      Dari mana

      • PROJECT adalah project ID. Jika flag ini dihilangkan, project default atau project saat ini akan digunakan.
      • REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan jika flag ini dihilangkan dari 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.3"
      }
      
      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 sudah siap mengupload. Untuk 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.3"
      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 paket Guava versi 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.3"
      }
    }
    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.3"
      }
    }
    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 yang ditentukan.

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 ada yang Anda gunakan untuk otomatisasi.

    Anda 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 dalam sesi gcloud CLI saat ini, jalankan perintah:

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

    Dari mana

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

Mengonfigurasi Maven

  1. Konfigurasikan Maven untuk jenis repositori yang Anda gunakan.

    Standard

    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
      

      Dari mana

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

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

    1. Tambahkan setelan repositori yang ditampilkan di elemen <project> ke bagian file pom.xml yang sesuai 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> di file ~/.m2/settings.xml. Dalam contoh berikut, KEY adalah kunci yang dienkode 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 dalam 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 mengganti nilai default untuk ID repositori central yang diwarisi dari Super POM.

    1. Enkode 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> di 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>
    

Konfigurasi autentikasi Anda selesai.

Mengonfigurasi Gradle

  1. Konfigurasikan Gradle untuk jenis repositori yang Anda gunakan.

    Standard

    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
      

      Dari 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 saat flag ini dihilangkan dari perintah.
      • KEY-FILE adalah jalur ke file kunci JSON akun layanan. Jika telah menjalankan perintah untuk mengaktifkan akun layanan, Anda dapat menghapus tanda ini.

      Perintah ini menampilkan setelan untuk disertakan dalam project Java Anda, termasuk versi kunci pribadi 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 agar kunci tidak terlihat dalam build atau repositori kontrol sumber Anda.

      artifactRegistryMavenSecret = KEY
      

      Pada baris ini, KEY adalah kunci pribadi dalam file kunci akun layanan layanan Anda. Untuk _json_key_base64, artifactRegistryMavenSecret ditetapkan ke kunci yang dienkode 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 repositori dan kredensial untuk autentikasi.
      • Bagian publishing menentukan file yang akan diupload dan repositori Artifact Registry target. Anda dapat memperbarui daftar file di bagian publications saat sudah siap mengupload. Untuk informasi tentang setelan publikasi, lihat dokumentasi plugin Maven Publish.

    Jarak jauh atau virtual

    1. Enkode 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.

    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 paket Guava versi 31.1-jre.

    Tentukan dependensi untuk paket Anda di bagian dependencies.

Konfigurasi autentikasi Anda selesai.

Langkah selanjutnya