步驟 2:建立建置規格 - AWS CodeBuild

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

步驟 2:建立建置規格

(上一個步驟:步驟 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 上傳在構建環境中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

下一步驟

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