Artifact Registry は、Maven や Gradle でビルドした Java パッケージをサポートしています。
概要
Artifact Registry の Java パッケージに慣れるには、クイックスタートをお試しください。
詳細をご確認いただく準備が整ったら、以下の情報をご覧ください。
- パッケージの Java パッケージ リポジトリを作成します。
- リモート リポジトリと仮想リポジトリを作成する方法を学習する。
- リモート リポジトリと仮想リポジトリの使用方法については、リポジトリの使用例をご覧ください。
- リポジトリに接続するアカウントに権限を付与します。Artifact Registry との一般的な統合に使用されるサービス アカウントには、同一のプロジェクト内のリポジトリに対するデフォルトの権限が割り当てられています。
- ツールを構成します。
- Maven または Gradle 用の認証を構成します。
- Maven や Gradle を使用するのではなく、sbt を Scala と Java 用のビルドツールとして使用する場合、コミュニティで作成された sbt プラグインをご利用いただけます。このドキュメントでは、Scala クライアントの構成や使用法は説明しません。
- パッケージのアップロードとダウンロードを行うように Cloud Build を構成します。
- Google Cloud ランタイム環境へのデプロイについて学習します。
- パッケージの管理について学習する。
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 は一意でないバージョン モデルをサポートしていないため、一意のバージョンを使用することをおすすめします。