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 lingkungan runtime Cloud Build atau Google Cloud seperti Google Kubernetes Engine dan Cloud Run, tetapi Anda harus memastikan bahwa izin yang diperlukan telah dikonfigurasi. Untuk mempelajari lebih lanjut, lihat informasi tentang Cloud Build dan deployment 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) Konfigurasi default untuk perintah gcloud.
  3. Jika Anda mengonfigurasi autentikasi dengan repositori standar, verifikasi kebijakan versi sehingga Anda dapat mengonfigurasi project Maven dengan benar untuk jenis paket Java yang dapat diupload.

    Konsol

    1. Buka halaman Repositories di Konsol Google Cloud.

      Buka halaman Repositori

    2. Klik repositori yang ingin Anda otentikasi.

      Bagian Details menampilkan kebijakan versi. Jika repositori memiliki kebijakan versi snapshot, kolom Izinkan snapshot penimpaan 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 saat flag ini dihilangkan dari 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 menyertakan informasi tentang kebijakan versi di bagian mavenConfig. Dalam contoh ini, repositori memiliki kebijakan versi snapshot dan snapshot tidak dapat menimpa versi 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 paling fleksibel. Jika Anda menyertakan helper dalam konfigurasi Maven atau Gradle, Artifact Registry akan menelusuri kredensial akun layanan di lingkungannya.
Menentukan kunci akun layanan sebagai kredensial
Gunakan opsi ini ketika aplikasi tidak mendukung Kredensial Default Aplikasi, tetapi mendukung autentikasi dengan nama pengguna dan sandi.

Kunci akun layanan adalah kredensial yang berlaku dalam 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 level project.
  • Ikuti praktik terbaik untuk mengelola kredensial.

Mengautentikasi dengan helper kredensial

Artifact Registry menyediakan Maven wagon dan plugin Gradle sebagai helper kredensial. Jika Anda menggunakan helper kredensial, kredensial Anda tidak akan disimpan di project Java. Sebagai gantinya, Artifact Registry menelusuri kredensial dengan urutan berikut:

  1. Kredensial Default Aplikasi (ADC), strategi yang mencari kredensial dengan 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 Cloud Functions.

  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 eksplisit, sehingga mempermudah pemecahan masalah. Jika Anda tidak menggunakan variabel tersebut, pastikan setiap 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 ingin mengupload dari lingkungan ini menggunakan akun layanan default, Anda harus mengubah izinnya.

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 spesifik 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. Konfigurasikan 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
      

      Dari 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 saat 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.1</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.1</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 mengetahui 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 disimpan di Artifact Registry.

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

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

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

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

Konfigurasi autentikasi selesai.

Mengonfigurasi Gradle

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

      Dari 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 saat 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 dari bagian yang dicetak.

      plugins {
        id "maven-publish"
        id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.1"
      }
      
      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 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.1"
      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 Anda untuk paket 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.1"
      }
    }
    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.1"
      }
    }
    apply plugin: "com.google.cloud.artifactregistry.gradle-plugin"
    

Konfigurasi autentikasi 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 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 layanan.
    • KEY-FILE adalah jalur ke file kunci JSON akun layanan.

Mengonfigurasi Maven

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

      Dari 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 saat 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 yang akan disertakan dalam project Java, termasuk kunci pribadi Anda yang berenkode base64.

    1. Tambahkan setelan repositori yang ditampilkan di 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> pada 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 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 mengganti nilai default untuk ID repositori central yang diwarisi dari Super POM.

    1. Base64 mengenkode 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> pada 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 selesai.

Mengonfigurasi Gradle

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

      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 menjalankan perintah untuk mengaktifkan akun layanan, Anda dapat menghilangkan tanda ini.

      Perintah ini menampilkan setelan yang akan disertakan dalam project Java, termasuk kunci pribadi Anda yang berenkode 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 sehingga kunci tersebut tidak terlihat di 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 disetel ke kunci berenkode base64 sebagai sandi Anda.

    3. Di build.gradle Anda, 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 siap mengupload. Untuk mengetahui informasi tentang setelan publikasi, lihat dokumentasi plugin Maven Publish.

    Jarak jauh atau virtual

    1. Base64 mengenkode file kunci Anda dengan perintah berikut. Ganti KEY-FILE dengan nama file kunci Anda.

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

      artifactRegistryMavenSecret = KEY
      

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

    Tentukan dependensi Anda untuk paket di bagian dependencies.

Konfigurasi autentikasi selesai.

Langkah selanjutnya