Categorias
Apache Clube dos 10 ferramentas Java

10 motivos para usar Maven ou Gradle em seu projeto

Há anos que esse artigo está como rascunho e sempre acabo escrevendo outro na frente dele, dessa vez resolvi botar em produção! =)

Como vocês sabem, antes de existir Gradle/Maven existia o ANT, e antes disso era o caos.

Nos projetos open source da Apache, existiam voluntários usando Windows e outros Linux, e todos usando o mesmo projeto em C compilado com Makefile.
O problema era que cada um tinha o compilador instalado em lugares parecidos, mas nunca iguais, o que levava a qualquer alteração alterar o Makefile próprio, ou fazer um para cada sistema operacional. Um dos desenvolvedores cansou de ficar alterando arquivo e resolveu criar um jeito genérico de fazer isso: assim surgiu o Apache ANT.

Certamente ele impulsionou o desenvolvimento, e muitos projetos, como o Apache Tomcat, usam ANT até hoje. Entretanto com o uso, o ANT mostrou alguns problemas como a gestão de dependências e várias outras tarefas tornar-se muito trabalhosas para fazer manualmente, esses e outros motivos levaram a surgir o Maven.

Talvez você conheça alguém que usou o Maven 1, que era bem lento e cheio de bugs, que rapidamente evolui para a versão 2.x, que ficou muitos anos no mercado até chegar na 3.x .

A Internet está lotada de tutoriais e artigos de como usar o Maven / Gradle, mas dificilmente eles comentam as vantagens do uso.

Bom, vamos aos motivos para usar no seu projeto:

1. Ajusta dependências da forma correta

Hoje é muito raro uma aplicação não usar nenhuma biblioteca auxiliar, e algumas dessas bibliotecas internamente também usam outras bibliotecas. Para gerenciar essas dependências na mão é bem complicar, muito melhor deixar a ferramenta fazer por você.

2. É uma fonte segura

Só que já mandou algum JAR para o repositório oficial do Maven sabe como eles são exigentes no código enviado, nas suas dependências internas e outros padrões. Isso resulta em um repositório com pacotes confiáveis que dificilmente quebrarão o seu sistema.

3. Todas as operações podem ser feitas em linha de comando

Operações que podem ser feitas em linha de comando podem ser facilmente configuradas e automatizadas dentro de um script ou de uma ferramenta de integração contínua.

4. Está integrado com as principais IDE

As principais IDEs do mercado suportam tanto o Maven, como o Gradle facilitando a criação ou manutenção de sistemas.

5. Permite que o seu projeto use Jenkins

Além do build, tarefas como geração de release também podem ser feitas no Jenkins ou qualquer outra ferramenta de CI.

6. Permite que o seu projeto use SonarQube

Como a equipe do SonarQube criou um plugin do Maven, então conseguimos facilmente fazer uma análise do código fonte dos sistemas.

7. Acaba com a frase “só roda na minha máquina”

Sim, como as bibliotecas baixadas do repositório oficial serão as mesmas em qualquer máquina, os ambientes serão cada vez mais equalizados.

8. Tem tarefas pré-definidas

Ao contrário do ANT, o Maven/Gradle possuem tarefas pré-definidas como fazer build, rodas os testes ou fazer deploy.

9. Convenção sobre configuração

Ao contrário do ANT, o Maven/Gradle possui uma estrutura padrão de localização dos arquivos, que facilita muito o trabalho e também analisar outros projetos que seguem a mesma estrutura.

10. Trabalhar com multi-projetos

Existem projetos divididos em projetos internos ou módulos, e isso o Maven / Gradle ajudam muito no gerenciamento.

Depois dos motivos, qual dos dois eu devo usar ?

Ambos são muito bem vistos no mercado, mas você pode usar alguns critérios:

– Se gosta de XML, use o Maven, se prefere Groovy, use o Gradle;

– Para projetos grandes o Gradle tem se saído melhor do Maven, além de ser o novo padrão de build para aplicações Android.

Antes de escolher veja o que a comunidade fala sobre esse assunto.

Fernando Boaglio, para a comunidade