Compilar aplicações Java
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Você pode usar um pipeline para:
- Crie seu projeto usando Maven, Gradle ou Ant.
- Execute testes e ferramentas de análise de código.
- Publique seu aplicativo em seu pipeline e Artefatos do Azure.
- Implante seu aplicativo no Serviço de Aplicativo do Azure, no Azure Functions ou no Serviço Kubernetes do Azure.
Se estiver a trabalhar num projeto Android, consulte Criar, testar e implementar aplicações Android.
Pré-requisitos
Para executar o exemplo a seguir, você deve ter:
- Uma conta do GitHub onde você pode criar um repositório. Crie um gratuitamente.
- Uma organização Azure DevOps. Crie um gratuitamente.
- Um projeto de DevOps do Azure. Se você não tiver um, crie um projeto agora.
- Uma conta do GitHub onde 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 de DevOps do Azure. Se você não tiver um, crie um projeto agora.
Criar um repositório GitHub
Fork o seguinte repo para sua conta do GitHub:
https://github.com/MicrosoftDocs/pipelines-java
Criar um pipeline
Entre na sua organização do Azure DevOps e vá para o seu projeto.
Vá para Pipelines e selecione Novo pipeline ou Criar pipeline se estiver criando o primeiro pipeline no projeto.
Execute as etapas do assistente selecionando primeiro o GitHub como o local do código-fonte. Poderá ser redirecionado para o GitHub para iniciar sessão. Em caso afirmativo, insira suas credenciais do GitHub.
Selecione o seu repo. Você pode ser redirecionado para o GitHub para instalar o aplicativo Azure Pipelines. Em caso afirmativo, selecione Aprovar e instalar.
Quando você vir a guia Configurar seu pipeline , selecione Maven, Gradle ou Ant , dependendo de como você deseja criar seu código.
Um
azure-pipelines.yml
arquivo 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 Criar seu código.Quando terminar de editar o
azure-pipelines.yml
, selecione Salvar e executar.Para confirmar o
azure-pipelines.yml
arquivo em seu repositório, selecione Salvar e executar novamente.
Selecione Trabalho para ver seu pipeline em ação.
Aceda à sua coleção e selecione o seu projeto.
Selecione Pipelines e, em seguida, selecione New pipeline ou Create pipeline se estiver criando o primeiro pipeline no projeto.
Execute as etapas do assistente selecionando primeiro o 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 seu token de acesso pessoal do GitHub Enterprise Server. Se você não tiver um token de acesso pessoal, poderá criar um em sua conta do GitHub Enterprise Server. Para obter mais informações, consulte Criando um token de acesso pessoal.
Selecione o seu repositório. Você pode ser redirecionado para o GitHub para instalar o aplicativo Azure Pipelines. Em caso afirmativo, selecione Aprovar e instalar.
Quando você vir a guia Configurar seu pipeline , selecione Maven, Gradle ou Ant , dependendo de como você deseja criar seu código.
Um
azure-pipelines-yml
arquivo 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 Criar seu código.Quando terminar de editar o
azure-pipelines.yml
, selecione Salvar e executar.Para confirmar o
azure-pipelines.yml
arquivo em seu 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 você personalizar! Para fazer alterações no pipeline, selecione-o na página Pipelines e edite o azure-pipelines.yml
arquivo.
Ambiente de construção
Você pode usar o Azure Pipelines para criar aplicativos Java sem precisar configurar sua própria infraestrutura. Você pode criar com base 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, consulte Agentes hospedados pela Microsoft.
Para selecionar a imagem apropriada, atualize o seguinte trecho no arquivo azure-pipelines.yml
.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Consulte Agentes hospedados pela Microsoft para obter uma lista completa de imagens.
Como alternativa ao uso de agentes hospedados pela Microsoft, você pode configurar agentes auto-hospedados com o 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 construir com o método escolhido instalado no host do agente.
Você pode selecionar seu pool de agentes e os recursos do agente nas seções Pool de agentes e Especificação do agente da 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 seu azure-pipelines.yml
arquivo.
pool:
name: MyPool
demands: maven
Crie seu 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 seu pipeline para cada método.
Maven
Com sua compilação do Maven, as seguintes tarefas são adicionadas ao seu azure-pipelines.yml
arquivo. Substitua os valores para corresponder ao seu projeto. Para obter mais informações sobre as opções de tarefa, consulte a tarefa 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 . Certifique-se de que o valor mavenPomFile
reflete o caminho para pom.xml
o arquivo. 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 se pom.xml
o mavenPomFile
arquivo 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
.
Personalize as metas do Maven
Defina o valor das metas para uma lista separada por espaço de metas para o Maven executar, como clean package
. Para obter detalhes sobre fases e objetivos comuns do Java, consulte a documentação do Maven do Apache.
Gradle
Com a compilação do Gradle, a tarefa a seguir é adicionada ao seu azure-pipelines.yml
arquivo. Para obter mais informações sobre essas opções, consulte 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 Gradle
Você precisa ter um gradlew
arquivo em seu repositório. Se você não tiver um, você pode gerá-lo executando gradle wrapper
no diretório raiz do seu projeto. Para obter informações sobre como criar um wrapper Gradle, consulte o Gradle.
Escolha a versão do Gradle
A versão do Gradle instalada na máquina do agente é usada, a menos que o arquivo do gradle/wrapper/gradle-wrapper.properties
repositório tenha uma distributionUrl
propriedade que especifique uma versão diferente do Gradle para baixar e usar durante a compilação.
Ajustar o caminho de compilação
Ajuste o valor se gradlew
o workingDirectory
arquivo não estiver na raiz do repositório.
O valor do diretório deve ser relativo à raiz do repo, como IdentityService
ou $(system.defaultWorkingDirectory)/IdentityService
.
Ajuste o valor se gradlew
o gradleWrapperFile
arquivo 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 tarefas comuns do Java Plugin para o Gradle, consulte a documentação do Gradle.
Ant
Com a compilação Ant, adicione a seguinte tarefa ao seu azure-pipelines.yml
arquivo. Altere valores, como o caminho para build.xml
o arquivo, para corresponder à configuração do projeto. Para obter mais informações sobre essas opções, consulte a tarefa Ant . Se estiver usando o repositório de exemplo, você precisará fornecer um build.xml
arquivo 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 criar com uma linha de comando ou script, adicione um dos seguintes trechos ao seu azure-pipelines.yml
arquivo.
Script embutido
A script:
etapa executa um script embutido usando Bash no Linux e macOS e Prompt de Comando no Windows. Para obter detalhes, consulte a tarefa Bash ou linha de comando .
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
Arquivo de script
Esta tarefa executa um arquivo de script que está em seu repositório. Para obter detalhes, consulte a tarefa Shell Script, Batch script ou PowerShell .
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
Próximos passos
Você pode publicar sua saída de 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 para seu destino de implantação: