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 は一意でないバージョン モデルをサポートしていないため、一意のバージョンを使用することをおすすめします。
概要を説明した動画
この動画では、Artifact Registry の概要と、Artifact Registry と Cloud Build を使用して Java パッケージを操作する方法について説明します。Cloud Build と Artifact Registry の使用の詳細については、Cloud Build との統合をご覧ください。