Memecahkan masalah paket Java

Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah dalam mengelola paket java di Artifact Registry.

Tidak dapat me-resolve dependensi yang disimpan di Artifact Registry

Maven me-resolve beberapa dependensi sebelum menerapkan wagon yang ditentukan dalam pom.xml, termasuk:

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

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

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

Tidak dapat mengupload snapshot non-unik ke repositori snapshot

Anda dapat mengupload versi snapshot yang tidak ada di repositori snapshot Artifact Registry, tetapi Anda tidak dapat menimpa versi yang sudah ada di repositori.

Snapshot non-unik adalah fitur Maven 2. Maven 3 selalu menambahkan stempel waktu ke nomor versi snapshot sehingga setiap versi snapshot bersifat unik.

Artifact Registry hanya mendukung versi snapshot non-unik di repositori dengan kebijakan versi snapshot. Secara default, repositori snapshot hanya menerima versi snapshot unik. Anda hanya dapat menetapkan kebijakan versi saat membuat repositori.

Untuk mengetahui setelan kebijakan versi untuk repositori, jalankan perintah berikut:

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 tanda 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 menyertakan informasi tentang kebijakan versi pada mavenConfig. Pada contoh berikut, repositori memiliki kebijakan versi snapshot dan snapshot tidak dapat menimpa versi yang identik di repositori.

Encryption: Google-managed key
createTime: '2021-09-23T19:39:10.897404Z'
format: MAVEN
mavenConfig:
 allowSnapshotOverwrites: false
 versionPolicy: SNAPSHOT