Build no Azure Pipelines
Tags: azure, pipeline, devops, braziliandevs
Published: 2023-04-25 12:34:29

Existem basicamente quatro níveis de linguagens de programação:

![Niveis de linguagens](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mcg28kjly0uz9t5lkiex.png)

* **Linguagens declarativas**: linguagens que descrevem a lógica de um programa, sem especificar os passos para alcançar um resultado específico. Elas se concentram mais no que deve ser feito do que em como deve ser feito.

* **Linguagens de alto nível**: linguagens abstratas e de fácil entendimento para os programadores, que oferecem recursos poderosos para resolver problemas em diferentes áreas.

* **Linguagens de montagem**: linguagem de baixo nível que utiliza códigos mnemônicos para representar as instruções do processador, facilitando a programação em baixo nível.

* **Linguagens de máquina**: linguagem de baixo nível que utiliza códigos binários para interagir diretamente com o hardware do computador.

As linguagens mais altas precisam ser interpretadas e compiladas para uma linguagem mais próxima da linguagem da máquina, a esse processo damos o nome de build.

**Build** é o processo de compilar, vincular e empacotar código fonte em um produto de software executável ou em uma biblioteca. O objetivo do build é transformar o código fonte em um formato que possa ser executado pelo sistema operacional ou plataforma de destino.

Transformar as fontes em um sistema em execução pode muitas vezes ser um processo complicado envolvendo compilação, mover arquivos, carregar esquemas nas bases de dados, e assim por diante. No entanto, como a maioria das tarefas nesta parte do desenvolvimento de software, isso pode ser automatizado - e, como resultado, deve ser automatizado. 

Para isso temos sistemas como o Maven, um compilador de códigos Java. O Maven constrói um projeto usando seu modelo de objeto de projeto (POM) e um conjunto de plugins. Depois de se familiarizar com um projeto Maven, você saberá como todos os projetos Maven são construídos. Isso economiza tempo ao navegar em muitos projetos.

### O Maven possui uma arquitetura em camadas que consiste em quatro componentes principais:

Repositório: é um local onde os artefatos (bibliotecas, plugins, etc.) são armazenados e compartilhados entre projetos.

1. Plugin: é um conjunto de metadados que define um objetivo específico que pode ser executado pelo Maven, como compilar o código fonte ou gerar um relatório.

2. Core: é o coração do Maven, responsável por orquestrar a execução dos plugins e gerenciar as dependências do projeto.

3. CLI (Command Line Interface): é a interface de linha de comando que os desenvolvedores usam para interagir com o Maven.

Basicamente usamos o CLI do Maven para realizar um build. 

## Vamos pro build

Porém, uma boa forma é um build e fazermos com automação. Bora usar o Azure Pipelines pra isso. 

Crie um hello world simples para demonstração e subi no repositório https://github.com/brbernardo/hello-world-java-maven

Agora vamos para o YML, já vimos como construir uma pipeline simples no post https://dev.to/bernardo/azure-pipelines-3k9, mas dessa vez, vamos usar uma task ja pronta. Vamos utilizar a task: Maven@4

A task: Maven@4 e mantida pela Microsoft e seu repositorio é o https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/MavenV4

Só precisamos incluir o bloco de código

```yaml
steps:
- task: Maven@4
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    goals: 'package'
```

E executar a pipeline que seu primeiro build será feito :) 

![build pipeline](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0eg6n385xoasaqoztvv7.png)