Pular para o conteúdo principal

Skipping Tests, Profiles e Debug com Maven

Olá pessoal, hoje iremos ver alguns comandos utilitários no processo de build do Maven.

O Processo de Build

O Maven é uma ferramenta que trás muitos benefícios ao ambiente de desenvolvimento, com ele gerenciamos dependências, versionamento e configurações dos projetos.

Uma parte muito importante que devemos nos atentar é com o processo de build, este processo é composto pela execução de todo o ciclo de vida do Maven, execução dos plugins presentes no pom.xml e a criação do artefato final.

É comum nos depararmos com builds que demoram vários minutos para completar, caso seja o seu caso, existem algumas métricas que dizem que "um processo de build não deve demorar mais que 5 minutos".

Maven Skip Tests

A execução dos testes é algo fundamental em projetos de softwares, mas as vezes nos deparamos com cenários onde precisamos executar o processo de build e não executar o pipeline de testes, com Maven temos 3 maneiras de executar tal tarefa, sendo:


Plugin


<plugin>        
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>2.12.4</version>
 <configuration>
    <skipTests>true</skipTests>
 </configuration>
</plugin>

Linha de Comando


mvn install -DskipTests

Linha de Comando, evitando a compilação dos Testes


mvn install -Dmaven.test.skip=true

Maven Profiles

Profiles é algo que praticamente todos ambientes de desenvolvimento necessitam, isso porque é comum termos particularidade entre os ambientes de desenvolvimento, testes, homologação e produção.

No Maven temos os profiles de build, estes permitem que de acordo com o profile configurado, diferentes processos e plugins sejam executados, para executarmos profile devemos fazer o seguinte:

<profiles>
   <profile>
      <id>dev</id>
       <!-- Código do build -->
   </profile>
   <profile>
      <id>homolog</id>
      <!-- Código do build -->
   </profile>
   <profile>
      <id>prod</id>
      <!-- Código do build -->
   </profile>
<profiles>

Após termos a configuração no pom.xml, podemos executar informando qual profile queremos executar:

mvn package -P dev

Aqui podemos ver a flag -P esta determina qual profile queremos que nosso build execute.

Maven Debug

Uma coisa muito comum é realizar o debug de um processo de build, esta operação nos permite verificar cada execução do processo, analisando qual o fluxo de cada parte do build.

No Maven, o padrão é executar todo o processo como INFO, ou seja, apesar informações essenciais serão exibidas no console, para executar o build em modo debug podemos passar a flag -X, como o abaixo:

mvn package -X

Todas essas pequenas configurações que realizamos ajudam no processo de build, tornando mais simples encontrar bugs, executar diferentes processos e encontrar problemas de performance.

Até a próxima.

Referências


Comentários

Postagens mais visitadas deste blog

Utilizando LocalDate, LocalDateTime e LocalTime na Prática

Tudo bem pessoal, hoje iremos avaliar e analisar operações de manipulação de Datas envolvendo a JavaTime API introduzida no Java 8.

Exemplos da java.time API
Já se passaram alguns anos desde o lançamento do Java 8 e mesmo após este período, há empresas que desconhecem o poder da java.time API, esta foi uma nova API de datas introduzida no Java 8 visando resolver problemas que tínhamos com as velhas classes Date e Calendar.

Vamos mostrar vários exemplos práticos do uso da API:
Criação de objetos No exemplo abaixo, estamos criando os objetos para manipulação de datas, perceba que temos 3 tipos, sendo LocalDate para manipular datas, LocalDateTime para manipular data/hora e LocalTime para horas:
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now();
Utilizando formatação Aqui realizamos a operação de formatação, perceba que não foi necessário utilizar a classe SimpleDateFormat, que usaríamos em conjunto com D…

Lendo e Manipulando arquivos CSV com Java

Olá hoje veremos como realizar a leitura e manipulação de arquivos CSV com Java, mostrando que as novas versões da plataforma Java deixaram algumas tarefas simples de serem realizadas.

Exemplo de Arquivo Hoje em dia é comum ao realizar integrações ou carga de dados o uso de arquivos CSV, isto porque, este arquivo possui uma estrutura de fácil entendimento e simples de manipular na maioria das plataformas de desenvolvimento.

Para realizar a leitura dos dados vamos manipular um arquivo com as seguintes colunas: namecpfagephone address:

name;cpf;age;phone;address caio;123456789;20;1145223643;AvenidaPaulista vinicius;147852369;18;1125253625;AvenidaManoel sandra;963258741;30;1174587858;RuaTeixeira regina;125478522;40;1145254536;RuaFernando fernando;785245563;42;1145253669;RuaPereira augusto;456123014;50;1125363633;AvenidaPaulinia maria;456123789;10;1125455525;AvenidaNossaSenhora
Para representar os dados em objetos Java iremos utilizar a seguinte classe:

importlombok.AllArgsConstruc…

Versionamento de Banco Dados com Flyway

Olá pessoal, hoje iremos analisar e aprender como realizar o versionamento e gerenciamento das bases de dados relacionais utilizando o framework Flyway.

Versionamento de Banco Dados Ao trabalhar com desenvolvimento de sistemas é comum realizarmos o versionamento, isso porque uma aplicação pode necessitar de correções, novas funcionalidades e evoluções, onde para garantir a compatibilidade e cuidar do seu ciclo de vida, geramos versões onde é especificado quais itens estão presentes em cada release.
Vamos imaginar seguinte cenário: Sistema ERP1.0.0: Entrega dos módulos Financeiro e RH;1.1.0: Entrega do módulo Contas a Receber. Perceba que a ideia é controlar o que cada versão possui de diferente, e para controlar essas mudanças no lado da aplicação existem várias técnicas e ferramentas, mas e para controlar as mudanças no lado do Banco de dados ? 
Para isso podemos utilizar ferramentas de versionamento que ajudam a realizar este controle, a ferramenta que iremos utilizar é o Flyway.
Con…