Java アプリケーションのビルドとテスト

このページでは、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 ビルドを構成する

  1. プロジェクトのルート ディレクトリに、cloudbuild.yaml という名前でビルド構成ファイルを作成します。

  2. テストを実行する: mavenmaven test を提供します。これにより、依存関係をダウンロードしてアプリケーションをビルドし、ソースコードで指定されたテストを実行します。ビルドステップの args フィールドは引数のリストを受け取り、name フィールドによって参照されるイメージに渡します。

    ビルド構成ファイルで、args フィールドに test を追加します。これにより、maven 内で test を呼び出します。

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['test']
    
  3. アプリケーションをパッケージ化する: maven イメージでアプリケーションを JAR ファイルにパッケージ化するには、args フィールドに package コマンドを指定します。package コマンドにより、/workspace/target/ に JAR ファイルがビルドされます。

    次のビルドステップでは、Java アプリケーションをパッケージ化します。

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['package','-Dmaven.test.skip=true']
    
  4. 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 のように数字とドットで書式設定します。
  5. 省略可: 来歴の生成を有効にする

    Cloud Build は、検証可能なソフトウェア アーティファクトのためのサプライ チェーン レベル(SLSA)ビルドの来歴メタデータを生成し、継続的インテグレーション パイプラインの保護をサポートします。

    来歴の生成を有効にするには、構成ファイルの options セクションに requestedVerifyOption: VERIFIED を追加します。

  6. 手動またはビルドトリガーを使用してビルドを開始します。

    ビルドが完了したら、Artifact Registry でリポジトリの詳細を表示できます。

    ビルドの来歴メタデータの表示来歴の検証も可能です。

次のステップ