Java パッケージを管理する

Artifact Registry は、Maven と Gradle でビルドする Java パッケージをサポートしています。

概要

Artifact Registry の Java パッケージに慣れるには、クイックスタートをお試しください。概要の動画もご覧ください。

詳細をご確認いただく準備が整ったら、以下の情報をご覧ください。

  1. パッケージの Java パッケージ リポジトリを作成する。
  2. リモート リポジトリと仮想リポジトリを作成する方法を学習する。
  3. リポジトリの使用例で、リモート リポジトリと仮想リポジトリを使用する方法を確認する。
  4. リポジトリに接続するアカウントに権限を付与します。Artifact Registry との一般的な統合に使用されるサービス アカウントには、同一のプロジェクト内のリポジトリに対するデフォルトの権限が割り当てられています。
  5. ツールを構成します。
  6. パッケージの管理について学習する。

Maven のスナップショットとリリースのバージョン

Maven は、Maven プロジェクトのスナップショット バージョンとリリース バージョンを区別します。

スナップショット

スナップショットは、Java プロジェクトのプレリリース版です。スナップショットのバージョン番号には、プロジェクト オブジェクト モデル(POM)の接尾辞 -SNAPSHOT が含まれています。たとえば、pom.xml ファイル内の設定は、開発中のプロジェクトの 1.0 バージョン用です。

<version>1.0-SNAPSHOT</version>

このプロジェクトからパッケージを公開すると、Maven 3 によりスナップショットのバージョン番号にタイムスタンプが自動的に追加され、各スナップショット バージョンが一意になります。Maven 2 では、リポジトリ内の既存のスナップショットを上書きする手段として、一意でないスナップショットのバージョンがサポートされています。このアプローチはビルドの再現性に問題があるため、Maven 3 では一意でないスナップショットがサポートされなくなりました。

スナップショットを使用すると、リポジトリに公開するたびに Maven プロジェクトのバージョン番号を増分せずに、プレリリース版パッケージの更新バージョンを繰り返し公開できます。開発中に、パッケージに依存する他のプロジェクトが、リポジトリからバージョン 1.0 の最新のスナップショットを取得できます。

Maven のバージョン番号の構文と並べ替え順の詳細については、バージョン順序の仕様をご覧ください。

リリース

パッケージをリリースする準備ができたら、POM ファイルのバージョン番号から -SNAPSHOT 接尾辞を削除し、パッケージに依存するすべてのプロジェクトを更新して、スナップショットのバージョンではなくリリース バージョンを使用できるようにします。

すべてのスナップショット依存関係を一覧表示するには、次のコマンドを使用して、依存関係ツリーをフィルタします。

mvn dependency:tree -Dincludes=:::*-SNAPSHOT

Artifact Registry のバージョン ポリシー

Artifact Registry で Maven リポジトリを作成する際に、Maven のバージョン ポリシーを指定できます。

  • なし - スナップショットとリリースの両方のパッケージを保存します。これはデフォルトの設定です。
  • スナップショット - スナップショット パッケージのみを保存します。
  • リリース - リリース パッケージのみを保存します。

スナップショットのバージョン ポリシーを選択した場合は、リポジトリ内の一意のバージョンが、リポジトリ内の一致するバージョンを上書きするかどうかも指定できます。Maven 3 は一意でないバージョン モデルをサポートしていないため、一意のバージョンを使用することをおすすめします。

概要を説明した動画

この動画では、Artifact Registry の概要と、Artifact Registry と Cloud Build を使用して Java パッケージを操作する方法について説明します。Cloud Build と Artifact Registry の使用の詳細については、Cloud Build との統合をご覧ください。