このページでは、Cloud Build を使用して Java ベースのアプリケーションをビルドしてテストする方法、ビルドされたアーティファクトを Artifact Registry 内の Maven リポジトリに保存する方法、ビルドの来歴情報を生成する方法について説明します。
始める前に
- Java ベースのアプリケーションの作成に精通している必要があります。
- Maven に精通している
- Java プロジェクトを準備します。
- Cloud Build 構成ファイルの作成方法に精通している必要があります。
- Artifact Registry に Maven リポジトリを用意します。リポジトリがない場合は、新しいリポジトリを作成します。
- このページで
gcloud
コマンドを実行するには、Google Cloud CLI をインストールします。
maven
イメージの使用
Docker Hub の maven
イメージを使用して Java アプリケーションをビルドするように Cloud Build を構成できます。
maven
イメージでタスクを実行するには、次のフィールドを使用してビルド構成にステップを追加します。
name
: このフィールドの値をmaven
またはmaven:<tag>
に設定します。タグはバージョンを表します。イメージタグを指定しない場合、Cloud Build はデフォルトでlatest
イメージを使用します。entrypoint
: このフィールドを設定すると、name
で参照されるイメージのデフォルトのエントリポイントがオーバーライドされます。このフィールドの値をmvn
に設定して、ビルドステップのエントリポイントとしてmvn
を呼び出し、mvn
コマンドを実行します。args
: ビルドステップのargs
フィールドは引数のリストを受け取り、name
フィールドによって参照されるイメージに渡します。
次のビルドステップでは、3.3-jdk-8
としてタグ付けされた maven
イメージの entrypoint
を指定し、ビルドツール バージョンを出力します。
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
Java
ビルドを構成する
プロジェクトのルート ディレクトリに、
cloudbuild.yaml
という名前でビルド構成ファイルを作成します。テストを実行する:
maven
はmaven test
を提供します。これにより、依存関係をダウンロードしてアプリケーションをビルドし、ソースコードで指定されたテストを実行します。ビルドステップのargs
フィールドは引数のリストを受け取り、name
フィールドによって参照されるイメージに渡します。ビルド構成ファイルで、
args
フィールドにtest
を追加します。これにより、maven
内でtest
を呼び出します。steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']
アプリケーションをパッケージ化する:
maven
イメージでアプリケーションを JAR ファイルにパッケージ化するには、args
フィールドにpackage
コマンドを指定します。package
コマンドにより、/workspace/target/
に JAR ファイルがビルドされます。次のビルドステップでは、Java アプリケーションをパッケージ化します。
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['package','-Dmaven.test.skip=true']
Artifact Registry にアップロードする:
ビルド構成ファイルで、
mavenArtifacts
フィールドを使用して、Artifact Registry のアプリケーション パスと Maven リポジトリを指定します。artifacts: mavenArtifacts: - repository: 'https://location-maven.pkg.dev/project-id/repository-name' path: 'app-path' artifactId: 'build-artifact' groupId: 'group-id' version: 'version'
次の値を置き換えます。
- location: Artifact Registry 内のリポジトリのロケーション。
- project-id: Artifact Registry リポジトリを含む Google Cloud プロジェクトの ID。
- repository-name: Artifact Registry 内の Maven リポジトリの名前。
- app-path: パッケージ化されたアプリケーションへのパス。
- build-artifact: ビルドステップで作成されたパッケージ ファイルの名前。
- group-id: すべての Maven プロジェクトにわたってプロジェクトを
com.mycompany.app
の形式で一意に識別します。詳しくは、Maven の命名規則に関するガイドをご覧ください。 - version: アプリケーションのバージョン番号。
1.0.1
のように数字とドットで書式設定します。
省略可: 来歴の生成を有効にする
Cloud Build は、検証可能なソフトウェア アーティファクトのためのサプライ チェーン レベル(SLSA)ビルドの来歴メタデータを生成し、継続的インテグレーション パイプラインの保護をサポートします。
来歴の生成を有効にするには、構成ファイルの
options
セクションにrequestedVerifyOption: VERIFIED
を追加します。手動またはビルドトリガーを使用してビルドを開始します。
ビルドが完了したら、Artifact Registry でリポジトリの詳細を表示できます。
ビルドの来歴メタデータの表示と来歴の検証も可能です。
次のステップ
- ビルド結果を表示する方法を学習する。
- ビルドを保護する方法を学習する。
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。
- Java アプリケーションをビルドしてコンテナ化する方法を学習する。
- Cloud Run でアプリケーションをデプロイする方法を学習する。
- GKE でアプリケーションをデプロイする方法を学習する。
- ビルドエラーをトラブルシューティングする方法について学習する。