자바 패키지 문제 해결

Artifact Registry에서 자바 패키지를 관리할 때 문제가 발생할 경우 도움이 될 수 있는 문제 해결 단계에 대해 알아보세요.

Artifact Registry에 저장된 종속 항목을 확인할 수 없음

Maven은 pom.xml에 정의된 wagon을 적용하기 전에 다음을 포함한 일부 종속 항목을 확인합니다.

  • <parent> 요소를 사용한 상위 프로젝트에 대한 하위 Maven 프로젝트의 참조
  • Artifact Registry에 저장된 플러그인 종속 항목

프로젝트에서 이러한 종속 항목을 확인해야 하는 경우 Maven이 상위 POM 파일 및 플러그인을 찾을 수 있도록 핵심 확장 프로그램 메커니즘을 사용해야 합니다.

프로젝트에서 다음 콘텐츠를 사용하여 ${maven.projectBasedir}/.mvn/extensions.xml 파일을 만듭니다. <extension> 요소는 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>

고유하지 않은 스냅샷을 스냅샷 저장소에 업로드할 수 없음

Artifact Registry 스냅샷 저장소에 없는 스냅샷 버전을 업로드할 수 있지만 저장소에 이미 있는 버전은 덮어쓸 수 없습니다.

고유하지 않은 스냅샷은 Maven 2의 기능입니다. Maven 3에서는 모든 스냅샷 버전이 고유하도록 항상 스냅샷 버전 번호에 타임스탬프를 추가합니다.

Artifact Registry는 스냅샷 버전 정책이 있는 저장소에서만 고유하지 않은 스냅샷 버전을 지원합니다. 기본적으로 스냅샷 저장소는 고유한 스냅샷 버전만 허용합니다. 저장소를 만들 때만 버전 정책을 설정할 수 있습니다.

저장소의 버전 정책 설정을 찾으려면 다음 명령어를 실행합니다.

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

주소

  • REPOSITORY는 저장소 ID입니다. 기본 Artifact Registry 저장소를 구성한 경우 이 플래그가 명령어에서 생략되었을 때 사용됩니다.
  • PROJECT는 프로젝트 ID입니다. 이 플래그를 생략하면 현재 프로젝트 또는 기본 프로젝트가 사용됩니다.
  • LOCATION은 저장소의 리전 또는 멀티 리전 위치입니다.

이 명령어의 결과에는 mavenConfig 아래에 버전 정책 정보가 포함됩니다. 다음 예시에서는 저장소에 스냅샷 버전 정책이 있고 스냅샷이 저장소의 동일한 버전을 덮어쓸 수 없습니다.

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