Versioning & Packages

Maven para Gradle

Você pode converter dependências em XML, chamadas Gradle ou coordenadas e escolher o formato de saída.

Maven para Gradle

Dependências de entrada

Declarações convertidas

A conversão ocorre neste navegador. As declarações não são enviadas a servidores nem a repositórios.

Coordenadas: g:a[:v[:classifier]]. Uma chamada ou coordenada por linha; chaves em linhas separadas.

Até 65.536 caracteres e 200 dependências. Apenas módulos externos literais, sem projetos completos.

A entrada ou as opções mudaram. Converta novamente antes de exportar.

Maven para Gradle ajuda quando a documentação de uma biblioteca só traz o formato do outro sistema de build. Separe as declarações necessárias, sem incluir projeto pai, repositórios ou plugins.

O resultado é um trecho para integrar ao projeto. A conversão de sintaxe não verifica se a versão existe nem se o grafo de dependências será resolvido sem conflitos.

Por que usar Maven para Gradle

Manter as coordenadas juntas

Maven para Gradle preserva grupo, artefato, versão e classificador. Os campos XML viram declarações Groovy ou Kotlin; entre os dois DSLs, a configuração Gradle suportada permanece igual.

Campos coloridos de coordenadas passam de um cartão XML para duas declarações compactas

Enxergar as diferenças de classpath

Um escopo Maven nem sempre equivale exatamente a uma configuração Gradle. Os avisos ao lado da saída ajudam a revisar dependências de teste e exposição de API antes de inserir o trecho no projeto.

Marcadores de escopo e classificador atravessam o conversor enquanto um projeto inteiro fica bloqueado

Confira a notação e quem usa a dependência

01

Entenda o quarto campo

A detecção aceita XML, chamadas Gradle suportadas e uma coordenada por linha. A ordem é g:a[:v[:classifier]]. O quarto campo é sempre o classificador, e não o packaging de uma coordenada Maven.

02

Escolha a exposição da biblioteca

compile e coordenadas isoladas geram implementation por padrão. Use api se uma biblioteca Java expõe a dependência a seus consumidores. Configurações Gradle existentes são mantidas na troca de DSL.

03

Aguarde a atualização da saída

O modo automático espera 350 ms após a edição. Desative-o para executar com Ctrl/Cmd + Enter. Alterações na entrada ou nas opções bloqueiam a exportação até a geração de um resultado atualizado.

Informações preservadas na declaração

Gradle para Maven

Aceita implementation, api, compileOnly, runtimeOnly e três configurações de teste. O XML omite compile por ser o escopo padrão e escreve explicitamente os outros escopos suportados.

Groovy e Kotlin DSL

Groovy usa aspas simples; Kotlin DSL usa parênteses e aspas duplas. api e testRuntimeOnly mantêm seus nomes na conversão direta entre os dois formatos, sem uma etapa intermediária que os reduza a escopos Maven.

Classificador e versão gerenciada

O quarto segmento vira classifier no XML. Uma versão ausente continua ausente, com aviso de que uma BOM, plataforma ou gestão existente precisa fornecê-la. Um classificador exige versão explícita.

Lotes e bloco opcional

Até 200 declarações mantêm a ordem original e as duplicatas. Você pode acrescentar o bloco dependencies no formato de destino. Comentários e espaços da entrada não são preservados.

Até onde a conversão de trechos vai

Sem migração do projeto inteiro
Um pom.xml ou build.gradle completo pode conter plugins, perfis, repositórios e herança. Essas estruturas são recusadas. Use ferramentas de migração e confira o resultado com um build real.
Somente módulos externos literais
Propriedades, interpolação, versões dinâmicas, intervalos, mapas, closures, project(), files(), platform() e aliases de catálogo são recusados. Os campos aceitam letras ASCII, números, pontos, hífens e sublinhados.
Metadados não suportados interrompem tudo
optional, exclusions, escopos system/import e tipos diferentes de jar causam erro. Campos ou atributos desconhecidos, DTDs e instruções de processamento também são recusados. Não há exportação parcial que esconda perda de informação.
Revise o significado do escopo
compile vira implementation ou api; provided vira compileOnly; runtime vira runtimeOnly; test vira testImplementation. Na volta para Maven, algumas distinções se juntam. Classpath de teste e comportamento de publicação podem mudar.
Limites de tamanho e sintaxe
São permitidos 65.536 caracteres e 200 dependências. Cada chamada Gradle ou coordenada ocupa uma linha; as chaves do bloco ficam em linhas separadas. Não há consulta de versões, dependências transitivas ou conflitos.

Dúvidas sobre Maven para Gradle

Como representar type e scope de uma dependência Maven no Gradle?

Os quatro escopos suportados seguem o mapeamento das regras. type deve estar ausente ou ser jar. test-jar e pom envolvem semântica de artefato ou plataforma que não cabe numa simples troca de campo.

É possível converter uma dependência sem versão?

Sim. group:artifact e XML sem version são aceitos. A saída não inventa uma versão; o projeto de destino deve fornecê-la por uma BOM, plataforma ou gestão de dependências já configurada.

Há suporte a propriedades como ${spring.version}?

Não. Resolva a propriedade primeiro e cole o valor literal. Uma expressão Maven dentro de uma string Gradle pode mudar de significado, e esta ferramenta não executa scripts para interpretá-la.

Como transformar build.gradle em Groovy em build.gradle.kts em Kotlin?

Escolha Kotlin e cole as chamadas de dependências suportadas. Parênteses e aspas são ajustados. Tarefas, plugins, mapas e outras instruções Groovy precisam de migração separada.

Existe um conversor online de Gradle para Maven?

Esta página faz Gradle para Maven em trechos de dependências. Ela não transforma um build.gradle inteiro em um POM completo: repositórios, plugins, publicação e módulos ainda precisam ser migrados.

Não encontrou a resposta?

Confira o trecho no contexto do projeto

Use Maven para Gradle, confira a quantidade e os avisos de escopo e copie a saída atualizada para o bloco dependencies adequado.