翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 2: buildspec ファイルを作成する
(前のステップ: ステップ 1: ソースコードを作成する)
このステップでは、ビルド仕様ファイルを作成します。buildspec は、 がビルドの実行 CodeBuild に使用する YAML 形式のビルドコマンドと関連設定のコレクションです。ビルド仕様がないと、ビルド入力をビルド出力に正常に変換したり、ビルド環境でビルド出力アーティファクトを見つけて出力バケットにアップロードしたり CodeBuild することはできません。
このファイルを作成し、buildspec.yml
という名前を付けて、ルート (最上位) ディレクトリに保存します。
version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
重要
ビルド仕様宣言は有効な YAML である必要があるため、ビルド仕様宣言のスペースは重要です。ビルド仕様宣言のスペース数が YAML と一致しない場合、ビルドは即座に失敗する場合があります。YAML validator を使用して、ビルド仕様宣言が有効な YAML かどうかをテストできます。
注記
ソースコードにビルド仕様ファイルを含める代わりに、ビルドプロジェクトを作成するときに個別にビルドコマンドを宣言することができます。これは、毎回ソースコードのリポジトリを更新せずに、異なるビルドコマンドでソースコードをビルドする場合に役立ちます。詳細については、「buildspec の構文」を参照してください。
このビルド仕様宣言の詳細は次の通りです。
-
version
は、使用されているビルド仕様スタンダードのバージョンを表します。このビルド仕様宣言では、最新バージョン0.2
が使用されます。 -
phases
は、 CodeBuild にコマンドの実行を指示するビルドフェーズを表します。これらのビルドフェーズはinstall
、pre_build
、build
、post_build
として、ここにリストされています。これらのビルドフェーズ名のスペルを変更することはできず、追加のビルドフェーズ名を作成することもできません。この例では、
build
フェーズ中に、 はmvn install
コマンド CodeBuild を実行します。このコマンドは、コンパイルされた Java クラスファイルをビルド出力アーティファクトにコンパイル、テスト、パッケージ化するように Apache Maven に指示します。完全にするために、この例では、いくつかのecho
コマンドが各ビルドフェーズに配置されています。このチュートリアルの後半で詳細なビルド情報を見る際に、これらのecho
コマンドの出力は、 CodeBuild がコマンドを実行する方法とその順序を理解するのに役立ちます。(この例にはすべてのビルドフェーズが含まれていますが、コマンドを実行しないビルドフェーズは含める必要がありません)。ビルドフェーズごとに、 は指定された各コマンドを、最初から最後まで、リストされた順序で 1 つずつ CodeBuild 実行します。 -
artifacts
は、 が CodeBuild出力バケットにアップロードするビルド出力アーティファクトのセットを表します。 は、ビルド出力に含めるファイルfiles
を表します。 CodeBuild は、ビルド環境のtarget
相対ディレクトリにある単一のmessageUtil-1.0.jar
ファイルをアップロードします。ファイル名messageUtil-1.0.jar
およびディレクトリ名target
は、この例でのみ Apache Maven がビルド出力アーティファクトを作成して格納する方法に基づいています。独自のビルドでは、これらのファイル名とディレクトリは異なります。
詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。
この時点で、ディレクトリ構造は次のようになります。
(root directory name)
|-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java