可以使用管道来自动生成和测试 Java 项目。 生成并测试应用后,可以将应用部署到
Azure 应用服务
、
Azure Functions
或
Azure Kubernetes 服务
。 如果你正在处理 Android 项目,请参阅
生成、测试和部署 Android 应用
。
Azure DevOps 中必须具有以下项:
一个项目。 如果没有,请立即
创建一个项目
。
一个管道。 如果没有,请立即
创建管道
。
在 GitHub 创建以下存储库分支:
https://github.com/MicrosoftDocs/pipelines-java
登录到你的 Azure DevOps 组织,并转到你的项目。
转到“管道”,然后选择“新建管道”。
首先选择 GitHub 作为源代码的位置,执行向导的步骤。 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。
选择存储库。 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是这样,请选择“批准并安装”。
看到“ 配置 ”选项卡时,请选择 “Maven ”、“ Gradle ”或 “Ant ”,具体取决于代码 的生成方式。
准备就绪后,选择“保存并运行”。
将新的 azure-pipelines.yml 文件提交到存储库。 再次选择“保存并运行” 。
如果你要观察管道的运行情况,请选择生成作业。
你刚刚创建并运行了一个管道,因为你的代码似乎与我们自动为你创建的 Maven 模板匹配。
现在,存储库中有一个可以正常工作的 YAML 管道 (azure-pipelines.yml
) ,可供自定义!
准备好更改管道后,请在“管道”页面中选择它,然后选择“编辑”来编辑 azure-pipelines.yml
文件。
在 Azure DevOps Server 2019 中将以下存储库导入 Git 存储库:
https://github.com/MicrosoftDocs/pipelines-java
保存管道并将生成加入队列。 出现 Build #nnnnnnnn.n has been queued
消息时,请选择数字链接以查看管道的运行情况。 现在,你已创建一个随时可自定义的有效管道!
可以使用 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
通过 Maven 生成,以下代码片段将添加到 文件中 azure-pipelines.yml
。 可以更改值(例如文件的路径) pom.xml
以匹配项目配置。 有关这些选项的详细信息,请参阅 Maven 任务。
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
对于 Spring Boot,也可以使用 Maven 任务。 确保值 mavenPomFile
反映文件的路径 pom.xml
。 例如,如果使用 Spring Boot 示例存储库,则路径将为 complete/pom.xml
。
自定义生成路径
如果 pom.xml
文件不在存储库的根目录中,请调整 mavenPomFile
值。 文件路径值应相对于存储库的根目录,例如 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: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
选择 Gradle 的版本
将使用代理计算机上安装的 Gradle 版本,除非存储库的文件 gradle/wrapper/gradle-wrapper.properties
具有属性 distributionUrl
,该属性指定要在生成期间下载和使用的不同 Gradle 版本。
调整生成路径
如果 gradlew
文件不在存储库的根目录中,请调整 workingDirectory
值。
目录值应相对于存储库的根,例如 IdentityService
或 $(system.defaultWorkingDirectory)/IdentityService
。
如果 gradlew
文件不在存储库的根目录中,请调整 gradleWrapperFile
值。 文件路径值应相对于存储库的根目录,例如 IdentityService/gradlew
或 $(system.defaultWorkingDirectory)/IdentityService/gradlew
。
调整 Gradle 任务
调整 Gradle 应执行的任务 的任务值, 例如 build
或 check
。
有关适用于 Gradle 的常见 Java 插件任务的详细信息,请参阅 Gradle 的文档。
使用 Ant 生成时,以下代码片段将添加到 文件中 azure-pipelines.yml
。 更改值,例如文件的路径 build.xml
以匹配项目配置。 有关这些选项的详细信息,请参阅 Ant 任务。
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
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'
生成并测试应用后,可以将生成输出上传到 Azure Pipelines,创建并发布 Maven 包,或将生成输出打包到要部署到 Web 应用程序的 .war/jar 文件中。
详细了解如何为部署目标创建 CI/CD 管道:
生成并部署到 Java Web 应用
生成 Java 并将其部署到 Azure Functions
生成 Java 并将其部署到 Azure Kubernetes 服务