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 イメージでタスクを実行するには、イメージの URL とイメージのタグ付きバージョンをビルド構成ファイルの name フィールドに指定します。イメージタグを指定しない場合、Cloud Build はデフォルトで latest イメージを使用します。Cloud Build は、イメージのデフォルトのエントリポイントを使用して、name に指定されたイメージを起動します。デフォルトのエントリポイントをオーバーライドして、エントリポイントとして maven を呼び出すには、entrypoint フィールドに mvn を指定します。

次のビルド構成ファイルでは、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 でリポジトリの詳細を表示できます。

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

次のステップ