Introdução
Neste tópico vamos falar sobre as ferramentas que normalmente são utilizadas em aplicações Java para tarefas rotineiras de build, como compilação, testes e cobertura, empacotamento, publicação…
As mais conhecidas ferramentas para esta finalidade são o Gradle e o Maven.
Glossário
- Artefato: no contexto deste artigo, para o Java, um Artefato corresponde a uma biblioteca que é compilada a partir de outro projeto Java, resultando um arquivo de extensão JAR.
- Classpath: no contexto deste artigo, para o Java, o classpath é o conjunto de recursos necessários para a execução da aplicação. Compoe esse classpath a próprias classes Java, resources, dependências (bibliotecas), etc.
Por que utilizar uma ferramenta?
Para quem está iniciando no Java, esta é uma pergunta clássica. Não basta aprender o Java, ainda tenho que aprender Maven ou Gradle? A resposta é: SIM. Não é algo que você precise se tornar especialista, mas é importante que conheça seu uso básico para não seguir caminhos complexos nos pontos que estas ferramentas resolvem com facilidade:
-
Gestão de dependências: O motivo principal para usar uma dessas ferramentas. Nada de baixar arquivos JAR e colocar em uma pasta LIB, ok? Basta declarar o Artefato no Maven/Gradle e deixar que ele baixe e adicione o mesmo ao Classpath.
-
Garantia de versionamento Todos os artefatos gerados ou dependências que nosso projeto terá serão necessariamente versionados. E uma determinada versão não deve ser regerada, gerando uma garantia que nosso código sempre utilizará a versão testada das dependências.
Gradle
O Gradle é a ferramenta de build mais moderna do ecossistema Java, usando uma DSL baseada em Groovy ou Kotlin. Arquivo de configuração: build.gradle (ou build.gradle.kts).
|
|
Comandos principais:
./gradlew build— compila, roda testes e empacota./gradlew test— executa os testes./gradlew bootRun— executa a aplicação Spring Boot
Maven
O Maven é a ferramenta mais tradicional, usando XML para configuração. Arquivo de configuração: pom.xml.
|
|
Comandos principais:
mvn clean install— compila, roda testes e empacotamvn test— executa os testesmvn spring-boot:run— executa a aplicação Spring Boot
Conclusão
Tanto Gradle quanto Maven resolvem bem o problema de gestão de dependências e automação de build. O Gradle é mais moderno e flexível; o Maven é mais previsível e amplamente documentado. A escolha depende do seu projeto e equipe.