Maven e Gradle

Daniane Gomes
3 min readFeb 23, 2022

Ferramentas de automação de build

Photo by Danist Soh on Unsplash
Inicialmente publicado no Twitter

Aplicações precisam de ferramentas de automação de build para auxiliar em tarefas como compilação do código, empacotamento do projeto, gerenciamento de dependências e execução de testes. Em Java, atualmente duas dessas ferramentas são bem populares: Maven e Gradle.

Maven

Um arquivo pom.xml é o responsável por agrupar as configurações necessárias para o build da aplicação. Maven foi criado para resolver os problemas de uma antiga ferramenta, o Ant (forma como os australopithecus gerenciavam build em Java), padronizando os builds.

É possível criar e incoporar plugins em arquivos Maven, como por exemplo, plugins para subir a aplicação através da linha de comando, sem a necessidade de abrir a IDE para isso. O plugin permite colocar a aplicação de pé executando `mvn spring-boot:run`.

Plugin Spring Boot no Maven

Maven é capaz de empacotar a aplicação em diversos formatos, como jar, war, gerar documentação e é suportado pela maioria das IDEs conhecidas no mundo Java.

Gradle

É modernização do Maven, possui todas as funcionalidades necessárias do Maven e seu uso não se limita a projetos baseados em JVM.

O arquivo o build.gradle geralmente é responsável pelas configurações e usa Groovy DSL (domain-specific language), o que o torna mais enxuto e fácil de ler do que o XML. (Vamos ser sinceres, quem gosta de XML?)

Comparação entre as mesmas configurações escritas para Maven e Gradle, retiradas da documentação do Gradle:

Configurações em Maven
Configurações em Gradle

Pela forma como gerencia as tarefas e por usar um cache para o build, o Gradle se diz 100x mais rápido que Maven:
https://gradle.org/gradle-vs-maven-performance/

Então devo usar Gradle? Depende!😬

Apesar de Gradle ser mais rápido e menos verboso, o Maven é mais conhecido, então usar o Gradle pode precisar de investimento em tempo para aprendizado.

O Maven não é ruim e faz o trabalho, então cabe julgar se vale investir esse tempo.

Em projetos existentes, existe também o custo de migração de Maven para Gradle, o que talvez não faz sentido, se os projetos forem pequenos. Já para projetos novos onde há espaço para testar novas ferramentas, considerar Gradle é uma boa opção.

O Otavio complementa com a dica do Maven Daemon:

Uma dica para projetos grandes que usam Maven é testar o Maven Daemon. Ele é um sub-projeto do Apache Maven que paraleliza os builds. Pra efeito de comparação: buildar o Apache Camel com o Maven leva uns 45 minutos e com o Maven Daemon leva 9.

--

--