Compilar aplicativos Java
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Você pode usar pipelines para:
- Desenvolver seu projeto com Maven, Gradle ou Ant.
- Executar testes e ferramentas de análise de código.
- Publicar seu aplicativo em seu pipeline e nos Artefatos do Azure.
- Implantar seu aplicativo no Serviços de Aplicativo do Azure, Funções do Azure ou Serviço de Kubernetes do Azure.
Se você estiver trabalhando em um projeto Android, confira Compilar, testar e implantar aplicativos Android.
Pré-requisitos
Para executar o exemplo a seguir, você deve ter:
- Uma conta do GitHub, na qual você pode criar um repositório. Crie um gratuitamente.
- Uma organização do Azure DevOps. Crie um gratuitamente.
- Um projeto do Azure DevOps. Se você não tiver um, Crie um projeto agora.
- Uma conta do GitHub, na qual você pode criar um repositório. Crie um gratuitamente.
- Acesso a uma coleção do Azure DevOps Server.
- A capacidade de executar o Azure Pipelines em agentes auto-hospedados do Azure DevOps.
- Um projeto do Azure DevOps. Se você não tiver um, Crie um projeto agora.
Criar um repositório GitHub
Criar um fork do seguinte repositório para sua conta do GitHub:
https://github.com/MicrosoftDocs/pipelines-java
Criar um pipeline
Entre na organização do Azure DevOps e acesse seu projeto.
Vá para Pipelines e selecione Novo Pipeline ou Criar Pipeline se estiver criando o primeiro pipeline no projeto.
Realize as etapas do assistente selecionando primeiro o GitHub como o local do código-fonte. Você pode ser redirecionado para o GitHub para então entrar. Nesse caso, insira suas credenciais do GitHub.
Selecione seu repositório. Você poderá ser redirecionado ao GitHub para instalar o aplicativo do Azure Pipelines. Se sim, selecione Aprovar e instalar.
Quando você vir a guia Configurar seu pipeline, selecione Maven, Gradle ou Ant dependendo de como você deseja compilar seu código.
Um arquivo
azure-pipelines.yml
contendo sua definição de pipeline é criado em seu repositório e aberto no editor YAML. Você pode personalizar o pipeline adicionando mais tarefas ou modificando as tarefas existentes. Para obter mais informações sobre as tarefas de compilação, consulte Compilar seu código.Quando tiver terminado de editar o
azure-pipelines.yml
, selecione Salvar e executar.Para confirmar o arquivo
azure-pipelines.yml
no repositório, selecione Salvar e executar novamente.
Selecione Trabalho para observar seu pipeline em ação.
Acesse sua coleção e selecione seu projeto.
Selecione Pipelines e selecione Novo Pipeline ou Criar Pipeline se estiver criando o primeiro pipeline no projeto.
Siga as etapas do assistente selecionando primeiro GitHub Enterprise Server como o local do código-fonte.
Use uma conexão de serviço GitHub existente ou crie uma nova.
Para criar uma conexão de serviço:
- Selecione Conectar ao GitHub Enterprise Server.
- Insira a URL do GitHub Enterprise Server.
- Insira o token de acesso pessoal do GitHub Enterprise Server. Se você não tiver um token de acesso pessoal, crie um em sua conta do GitHub Enterprise Server. Para obter mais informações, confira Como criar um token de acesso pessoal.
Selecione seu repositório. Você poderá ser redirecionado ao GitHub para instalar o aplicativo do Azure Pipelines. Se sim, selecione Aprovar e instalar.
Quando você vir a guia Configurar seu pipeline, selecione Maven, Gradle ou Ant dependendo de como você deseja compilar seu código.
Um arquivo
azure-pipelines-yml
contendo sua definição de pipeline é criado em seu repositório e aberto no editor YAML. Você pode personalizar o pipeline adicionando mais tarefas ou modificando as tarefas existentes. Para obter mais informações sobre as tarefas de compilação, consulte Compilar seu código.Quando tiver terminado de editar o
azure-pipelines.yml
, selecione Salvar e executar.Para confirmar o arquivo
azure-pipelines.yml
no repositório, selecione Salvar e executar novamente.
Você pode selecionar Trabalho para observar seu pipeline em ação.
Agora você tem um pipeline YAML funcional (azure-pipelines.yml
) em seu repositório que está pronto para personalização! Para fazer as alterações no pipeline, selecione-o na página Pipelines e Edite o arquivo azure-pipelines.yml
.
Ambiente de build
Você pode usar o Azure Pipelines para criar aplicativos Java sem precisar configurar uma infraestrutura própria. Você pode compilar em imagens do Windows, Linux ou macOS. Os agentes hospedados pela Microsoft no Azure Pipelines têm JDKs modernos e outras ferramentas para Java pré-instaladas. Para saber quais versões do Java estão instaladas, confira Agentes hospedados pela Microsoft.
Para selecionar a imagem apropriada, atualize o snippet de código a seguir no arquivo azure-pipelines.yml
.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Confira Agentes hospedados pela Microsoft para obter uma lista completa de imagens.
Como alternativa ao uso de agentes hospedados pela Microsoft, você pode configurar os agentes auto-hospedados com Java instalado. Você também pode usar agentes auto-hospedados para economizar mais tempo se tiver um repositório grande ou executar compilações incrementais.
Suas compilações são executadas em um agente auto-hospedado. Certifique-se de ter o Java e as ferramentas necessárias para compilar com o método escolhido instalado no host do agente.
Você pode selecionar seu pool de agentes e os recursos nas seções Pool do agente e Especificação do agente na guia Opções no editor de pipeline.
Por exemplo, para especificar o pool de agentes e um agente com o recurso Maven, adicione o seguinte trecho ao arquivo azure-pipelines.yml
.
pool:
name: MyPool
demands: maven
Compilar o código
Você pode criar seu aplicativo Java com Maven, Gradle, Ant ou um script. As seções a seguir mostram como adicionar uma etapa de compilação ao pipeline para cada método.
Maven
Com a compilação do Maven, as tarefas a seguir são adicionadas ao arquivo azure-pipelines.yml
. Substitua os valores para corresponder ao seu projeto. Para obter mais informações sobre as opções de tarefa, consulte a Tarefa do Maven.
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
Para o Spring Boot, você também pode usar a tarefa Maven. Verifique se o valor mavenPomFile
reflete o caminho para o arquivo pom.xml
. Por exemplo, se você estiver usando o repositório de exemplo do Spring Boot, seu caminho será complete/pom.xml
.
Personalizar o caminho de compilação
Ajuste o valor mavenPomFile
se o arquivo pom.xml
não estiver na raiz do repositório. O valor do caminho do arquivo deve ser relativo à raiz do repositório, como IdentityService/pom.xml
ou $(system.defaultWorkingDirectory)/IdentityService/pom.xml
.
Personalizar metas do Maven
Defina o valor de metas como uma lista separada por espaço de metas para o Maven executar, como clean package
. Para obter detalhes sobre metas e fases comuns do Java, confira a documentação do Maven do Apache.
Gradle
Com a compilação do Gradle, a tarefa a seguir é adicionada ao arquivo azure-pipelines.yml
. Para obter mais informações sobre essas opções, confira a tarefa Gradle.
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Invólucro do Gradle
Você precisa ter um arquivo gradlew
em seu repositório. Se você não tiver um, poderá gerá-lo executando gradle wrapper
no diretório raiz do seu projeto. Para obter informações sobre como criar um invólucro do Gradle, consulte o Gradle.
Escolher a versão do Gradle
A versão do Gradle instalada no computador do agente será usada, a menos que o arquivo do gradle/wrapper/gradle-wrapper.properties
repositório tenha uma propriedade distributionUrl
que especifique uma versão diferente do Gradle para baixar e usar durante a compilação.
Ajustar o caminho da compilação
Ajuste o valor workingDirectory
se o arquivo gradlew
não estiver na raiz do repositório.
O valor do diretório deve ser relativo à raiz do repositório, como IdentityService
ou $(system.defaultWorkingDirectory)/IdentityService
.
Ajuste o valor gradleWrapperFile
se o arquivo gradlew
não estiver na raiz do repositório. O valor do caminho do arquivo deve ser relativo à raiz do repositório, como IdentityService/gradlew
ou $(system.defaultWorkingDirectory)/IdentityService/gradlew
.
Ajustar tarefas do Gradle
Ajuste o valor das tarefas para as tarefas que o Gradle deve executar, como build
ou check
. Para obter mais informações sobre as tarefas comuns de Plug-in do Java para o Gradle, confira a documentação do Gradle.
Ant
Com a compilação Ant, adicione a seguinte tarefa ao arquivo azure-pipelines.yml
. Altere os valores, como o caminho para o arquivo build.xml
, para corresponder à configuração do projeto. Para obter mais informações sobre essas opções, confira a tarefa Ant. Se estiver usando o repositório de exemplo, você precisará fornecer um arquivo build.xml
em seu repositório.
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
Script
Para compilar com uma linha de comando ou script, adicione um dos snippets a seguir ao arquivo azure-pipelines.yml
.
Script embutido
A etapa script:
executa um script embutido usando Bash no Linux e macOS, e o prompt de comando no Windows. Para obter detalhes, confira a tarefa Bash ou Linha de comando.
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
Arquivo de script
Essa tarefa executa um arquivo de script que está em seu repositório. Para obter detalhes, confira o Script do Shell, o Script do Lote ou a tarefa do PowerShell.
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
Próximas etapas
Você pode publicar o resultado da compilação em seu pipeline. Você pode empacotar e publicar seu aplicativo em um pacote Maven ou em um arquivo .war/jar a ser implantado em um aplicativo Web.
Saiba mais sobre como criar um pipeline de CI/CD no destino de implantação: