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 でリポジトリの詳細を表示できます。

    また、ビルドの来歴メタデータの表示来歴の検証を行うこともできます。

次のステップ