Compilar aplicativos Java

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019 | TFS 2018

Você pode usar pipelines para:

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.
  • 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

  1. Entre na organização do Azure DevOps e acesse seu projeto.

  2. Vá para Pipelines e selecione Novo Pipeline ou Criar Pipeline se estiver criando o primeiro pipeline no projeto.

  3. 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.

  4. Selecione seu repositório. Você poderá ser redirecionado ao GitHub para instalar o aplicativo do Azure Pipelines. Se sim, selecione Aprovar e instalar.

  5. Quando você vir a guia Configurar seu pipeline, selecione Maven, Gradle ou Ant dependendo de como você deseja compilar seu código.

  6. 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.

  7. Quando tiver terminado de editar o azure-pipelines.yml, selecione Salvar e executar.

  8. Para confirmar o arquivo azure-pipelines.yml no repositório, selecione Salvar e executar novamente.

Selecione Trabalho para observar seu pipeline em ação.

  1. Acesse sua coleção e selecione seu projeto.

  2. Selecione Pipelines e selecione Novo Pipeline ou Criar Pipeline se estiver criando o primeiro pipeline no projeto.

  3. Siga as etapas do assistente selecionando primeiro GitHub Enterprise Server como o local do código-fonte.

  4. Use uma conexão de serviço GitHub existente ou crie uma nova.

    Para criar uma conexão de serviço:

    1. Selecione Conectar ao GitHub Enterprise Server.
    2. Insira a URL do GitHub Enterprise Server.
    3. 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.
  5. Selecione seu repositório. Você poderá ser redirecionado ao GitHub para instalar o aplicativo do Azure Pipelines. Se sim, selecione Aprovar e instalar.

  6. Quando você vir a guia Configurar seu pipeline, selecione Maven, Gradle ou Ant dependendo de como você deseja compilar seu código.

  7. 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.

  8. Quando tiver terminado de editar o azure-pipelines.yml, selecione Salvar e executar.

  9. 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: