步驟 2:建立 Buildspec 檔 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 2:建立 Buildspec 檔

(上一個步驟:步驟 1:建立原始程式碼)

在此步驟中,您會建立組建規格 (build spec) 檔案。一個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。

注意

您可以在建立建置專案時分別宣告建置命令,而非在您的來源碼中包含建置規格檔案。這在您希望使用不同建置命令建置來源碼,卻又不想要每次都更新您來源碼的儲存庫時會非常有用。如需詳細資訊,請參閱 Buildspec 語法

在此建置規格宣告中:

  • version 代表要使用的建置規格標準版本。此建置規格宣告使用最新版本,0.2

  • phases代表您可以指示 CodeBuild 執行命令的建置階段期間。這些組建階段會在此以 installpre_buildbuildpost_build 的形式列出。您無法變更這些組建階段名稱的拼字,也無法建立更多組建階段名稱。

    在此示例中,於build階段,CodeBuild 運行mvn install命令。此命令會指示 Apache Maven 編譯、測試,並將編譯過的 Java 類別檔案封裝到建置輸出成品中。為求完整,此範例中的每個建置階段內都置放了一些 echo 命令。當您在本教學課程後文檢視詳細建置資訊時,這些echo命令可協助您更進一步了解 CodeBuild 執行命令的方式及順序。(雖然此範例中包含了所有組建階段,但若您不需要在其中一個階段執行任何命令,則可不必包含該組建階段。) 針對每個建置階段,CodeBuild 會依照列出的順序,從頭到尾執行每個指定的命令 (一次一個)。

  • artifacts表示 CodeBuild 上傳到輸出存儲桶的構建輸出對象集。files代表要包含在建置輸出中的檔案。CodeBuild 上傳單個messageUtil-1.0.jar文件中找到target相對目錄。檔案名稱 (messageUtil-1.0.jar) 及目錄名稱 (target) 是以 Apache Maven 建立及存放組建輸出成品的方式為基礎,僅適用於此範例。在您自己的組建中,檔案名稱及目錄可能會有所不同。

如需詳細資訊,請參閱 Buildspec 參考

此時您的目錄結構看起來應該會如下。

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

下一步驟

步驟 3:建立兩個 S3 儲存貯體