Maven / Gradle para Java: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: O que são Maven e Gradle e para que servem?

\n\n

No mundo do desenvolvimento Java, existe um problema fundamental: como gerenciar dependências (bibliotecas externas), automatizar a compilação do projeto, executar testes e criar artefatos finais (JAR, WAR)? Baixar arquivos JAR manualmente e configurar o classpath é um caminho sem volta, especialmente para projetos com dezenas de dependências.

\n\n

Maven e Gradle são os dois sistemas de automação de build (build automation tools) mais populares para Java. Eles resolvem as seguintes tarefas:

\n
    \n
  • Gerenciamento de dependências: download automático de bibliotecas de repositórios centrais (Maven Central, Google Maven) e suas dependências transitivas.
  • \n
  • Padronização do ciclo de vida: compilação, teste, empacotamento, implantação — tudo é executado com comandos padrão.
  • \n
  • Reprodutibilidade de builds: qualquer desenvolvedor pode compilar o projeto com um único comando, tendo apenas o código-fonte e o arquivo de configuração.
  • \n
  • Integração com CI/CD: Jenkins, GitLab CI, GitHub Actions executam facilmente builds Maven/Gradle.
  • \n
\n\n

Maven usa XML (arquivo pom.xml) e um ciclo de vida rigoroso. Gradle usa Groovy ou Kotlin DSL (arquivo build.gradle ou build.gradle.kts), é mais flexível e rápido devido ao build incremental. Neste artigo, abordaremos ambas as ferramentas, mas focaremos no Gradle como uma solução mais moderna.

\n\n

Instalação do Maven e Gradle

\n\n

Instalação do Maven

\n

Maven não é instalado via pip ou npm. Ele precisa ser baixado do site oficial ou instalado através do gerenciador de pacotes do sistema operacional.

\n
# macOS (Homebrew)\nbrew install maven\n\n# Ubuntu/Debian\nsudo apt-get update\nsudo apt-get install maven\n\n# Windows (Chocolatey)\nchoco install maven\n\n# Verificar instalação\nmvn --version
\n\n

Instalação do Gradle

\n

Gradle também é instalado separadamente. Recomenda-se usar o SDKMAN! para gerenciar versões.

\n
# Instalar SDKMAN (se ainda não estiver instalado)\ncurl -s "https://get.sdkman.io" | bash\nsource "$HOME/.sdkman/bin/sdkman-init.sh"\n\n# Instalar a versão mais recente do Gradle\nsdk install gradle\n\n# Verificar\ngradle --version\n\n# Alternativamente: baixar de https://gradle.org/releases/ e extrair
\n\n

Início rápido: Criando um projeto

\n\n

Criando um projeto com Maven

\n

Maven pode gerar um esqueleto de projeto através de archetypes.

\n
# Criar um projeto Java simples\nmvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false\n\n# Entrar na pasta do projeto\ncd my-app\n\n# Compilar o projeto\nmvn clean package\n\n# Executar (se a classe main estiver configurada)\njava -cp target/my-app-1.0-SNAPSHOT.jar com.example.App
\n\n

Criando um projeto com Gradle

\n

Gradle usa o comando init para criar um esqueleto.

\n
# Criar pasta e inicializar o projeto\nmkdir my-gradle-app\ncd my-gradle-app\ngradle init\n\n# Escolher: 2: application -> 3: Java -> 1: Groovy DSL -> 2: JUnit Jupiter -> Enter\n\n# Compilar e executar\n./gradlew build\n./gradlew run
\n\n

Após isso, você terá uma estrutura de projeto com os arquivos build.gradle (ou pom.xml para Maven) e as pastas src/main/java e src/test/java.

\n\n

Principais métodos/funções (Gradle DSL)

\n

Vamos analisar as principais construções do Gradle (Groovy DSL). Para Maven, elas são análogas, mas com sintaxe XML.

\n\n

1. dependencies { ... }

\n

O que faz: Define as dependências do projeto — bibliotecas externas que serão baixadas dos repositórios.

\n

Parâmetros: Dentro do bloco, são especificadas as configurações (implementation, testImplementation, compileOnly, etc.) e as coordenadas

Recommendations