本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
第 2 步:創建構建規格文件
(上一個步驟:步驟 1:建立原始程式碼)
在此步驟中,您會建立組建規格 (build spec) 檔案。Buildspec 是建置命令和相關設定的集合 (YAML 格式), CodeBuild 用來執行組建。如果沒有組建規格,就 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 執行命令的建置階段期間。這些組建階段會在此以install
、pre_build
、build
和post_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