建置 Java 應用程式
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
您可以使用管線來自動:
- 使用 Maven、 Gradle 或 Ant 建置您的專案。
- 執行測試和程式代碼分析工具。
- 將您的應用程式發佈至管線和 Azure Artifacts。
- 將您的應用程式部署至 Azure App 服務、Azure Functions 或 Azure Kubernetes Service。
如果您正在處理 Android 專案,請參閱 建置、測試及部署 Android 應用程式。
必要條件
若要執行下列範例,您必須具備:
建立 GitHub 存放庫
將下列存放庫分叉至您的 GitHub 帳戶:
https://github.com/MicrosoftDocs/pipelines-java
建立管線
登入您的 Azure DevOps 組織並前往您的專案。
移至 [管線],然後在專案中建立第一個管線時選取 [ 新增管線 ] 或 [建立管線 ]。
先選取 GitHub 作為原始程式碼的位置,以執行精靈的步驟。 系統可能會將您重新導向至 GitHub 以進行登入。 若是如此,請輸入 GitHub 認證。
選取您的存放庫。 系統可能會將您重新導向至 GitHub,以安裝 Azure Pipelines 應用程式。 如果發生此情況,請選取 [核准並安裝]。
當您看到 [設定管線] 索引卷標時,請根據您想要建置程序代碼的方式,選取 [Maven]、[Gradle] 或 [Ant]。
azure-pipelines-yml
包含管線定義的檔案會在存放庫中建立,並在 YAML 編輯器中開啟。 您可以藉由新增更多工作或修改現有的工作來自定義管線。 如需建置工作的詳細資訊,請參閱 建置程序代碼。當您完成編輯 時,
azure-pipelines.yml
請選取 [ 儲存並執行]。若要將
azure-pipelines.yml
檔案認可至存放庫,請選取 [ 儲存],然後再次執行 。
選取 [作業 ] 以監看管線的運作情形。
移至您的集合,然後選取您的專案。
選取 [管線],然後在專案中建立第一個管線時選取 [新增管線] 或 [建立管線]。
先選取 GitHub Enterprise Server 作為原始程式碼的位置,以執行精靈的步驟。
使用現有的 GitHub 服務連線或建立新的連線。
若要建立服務連線:
- 選取 [連線 至 GitHub Enterprise Server]。
- 輸入您的 GitHub Enterprise 伺服器 URL。
- 輸入您的 GitHub Enterprise Server 個人存取令牌。 如果您沒有個人存取令牌,您可以在 GitHub Enterprise Server 帳戶中建立一個令牌。 如需詳細資訊,請參閱 建立個人存取令牌。
選取您的存放庫。 系統可能會將您重新導向至 GitHub,以安裝 Azure Pipelines 應用程式。 如果發生此情況,請選取 [核准並安裝]。
當您看到 [設定管線] 索引卷標時,請根據您想要建置程序代碼的方式,選取 [Maven]、[Gradle] 或 [Ant]。
azure-pipelines-yml
包含管線定義的檔案會在存放庫中建立,並在 YAML 編輯器中開啟。 您可以藉由新增更多工作或修改現有的工作來自定義管線。 如需建置工作的詳細資訊,請參閱 建置程序代碼。當您完成編輯 時,
azure-pipelines.yml
請選取 [ 儲存並執行]。若要將
azure-pipelines.yml
檔案認可至存放庫,請選取 [ 儲存],然後再次執行 。
您可以選取 [作業 ] 來監看管線的運作情形。
您現在已在存放庫中有一個可運作的 YAML 管線 (azure-pipelines.yml
),可供您自定義! 若要變更管線,請在 [管線] 頁面中選取它,然後編輯azure-pipelines.yml
檔案。
建置環境
您可以使用 Azure Pipelines 來建置 Java 應用程式,而不需要設定您自己的任何基礎結構。 您可以在 Windows、Linux 或 macOS 映射上建置。 Azure Pipelines 中的 Microsoft 裝載代理程式具有新式 JDK 和其他適用於 Java 預安裝的工具。 若要知道已安裝哪些 Java 版本,請參閱 Microsoft 裝載的代理程式。
若要選取適當的映像,請更新檔案 azure-pipelines.yml
中的下列代碼段。
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
如需映像的完整清單,請參閱 Microsoft 裝載的 代理程式。
除了使用 Microsoft 裝載的代理程式,您還可以設定 已安裝 Java 的自我裝載代理程式 。 如果您有大型存放庫或執行累加組建,您也可以使用自我裝載代理程式來節省更多時間。
您的組建會在自我裝載代理程式上執行。 請確定您有 Java,以及使用安裝在代理程式主機上所選方法建置所需的工具。
您可以在管線編輯器的 [選項] 索引標籤的 [代理程式集區] 和 [代理程式規格] 區段中選取代理程式集區和代理程式功能。
例如,若要指定代理程式集區和具有 Maven 功能的代理程式,請將下列代碼段新增至您的 azure-pipelines.yml
檔案。
pool:
name: MyPool
demands: maven
建置您的程式碼
您可以使用 Maven、Gradle、Ant 或腳本來建置 Java 應用程式。 下列各節說明如何將建置步驟新增至每個方法的管線。
Maven
使用 Maven 組建,下列工作會新增至您的 azure-pipelines.yml
檔案。 取代值以符合您的專案。 如需工作選項的詳細資訊,請參閱 Maven 工作。
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
針對 Spring Boot,您也可以使用 Maven 工作。 請確定您的 mavenPomFile
值反映檔案 pom.xml
的路徑。 例如,如果您使用 Spring Boot 範例存放庫,則路徑為 complete/pom.xml
。
自定義建置路徑
mavenPomFile
如果您的pom.xml
檔案不在存放庫的根目錄中,請調整值。 檔案路徑值應該相對於存放庫的根目錄,例如 IdentityService/pom.xml
或 $(system.defaultWorkingDirectory)/IdentityService/pom.xml
。
自訂 Maven 目標
將 目標 值設定為空間分隔的目標清單,讓 Maven 執行,例如 clean package
。 如需常見 Java 階段和目標的詳細資訊,請參閱 Apache 的 Maven 檔。
Gradle (英文)
使用 Gradle 組建時,會將下列工作新增至您的 azure-pipelines.yml
檔案。 如需這些選項的詳細資訊,請參閱 Gradle 工作。
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Gradle 包裝函式
您需要在存放庫中有檔案 gradlew
。 如果您沒有,您可以在專案的根目錄中執行 gradle wrapper
來產生它。 如需建立 Gradle 包裝函式的詳細資訊,請參閱 Gradle。
選擇 Gradle 的版本
除非存放庫的 gradle/wrapper/gradle-wrapper.properties
檔案具有 distributionUrl
屬性,以指定要在建置期間下載及使用的不同 Gradle 版本,否則會使用代理程式計算機上安裝的 Gradle 版本。
調整建置路徑
workingDirectory
如果您的gradlew
檔案不在存放庫的根目錄中,請調整值。
目錄值應該相對於存放庫的根目錄,例如 IdentityService
或 $(system.defaultWorkingDirectory)/IdentityService
。
gradleWrapperFile
如果您的gradlew
檔案不在存放庫的根目錄中,請調整值。 檔案路徑值應該相對於存放庫的根目錄,例如 IdentityService/gradlew
或 $(system.defaultWorkingDirectory)/IdentityService/gradlew
。
調整 Gradle 工作
調整 Gradle 應該執行工作的工作值,例如 build
或 check
。 如需 Gradle 常見 Java 外掛程式工作的詳細資訊,請參閱 Gradle 的檔。
Ant
使用 Ant 組建,將下列工作新增至您的 azure-pipelines.yml
檔案。 變更值,例如檔案 build.xml
的路徑,以符合專案組態。 如需這些選項的詳細資訊,請參閱 Ant 工作。 如果使用範例存放庫,您必須在存放庫中提供 build.xml
檔案。
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
指令碼
若要使用命令行或腳本建置,請將下列其中一個代碼段新增至您的 azure-pipelines.yml
檔案。
內嵌指令碼
此步驟會在 script:
Linux和macOS上使用Bash和Windows上的命令提示字元來執行內嵌腳本。 如需詳細資訊,請參閱 Bash 或 命令行 工作。
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
腳本檔案
此工作會執行存放庫中的腳本檔案。 如需詳細資訊,請參閱 Shell 腳本、 Batch 腳本或 PowerShell 工作。
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
下一步
您可以將組建輸出發佈至管線。 您可以在 Maven 套件或 要部署到 Web 應用程式的 .war/jar 檔案中封裝和發佈應用程式。
深入瞭解如何為您的部署目標建立 CI/CD 管線: