Skip to content
Latchkey

SDKMAN vs asdf: versões da JVM ou poliglota?

O SDKMAN é especializado em SDKs da JVM (Java, Kotlin, Gradle, sbt); o asdf gerencia versões de muitas linguagens via plugins.

O SDKMAN foca no mundo da JVM, instalando e alternando distribuições Java, Kotlin, Scala, Gradle, Maven e ferramentas relacionadas com um catálogo curado de fornecedores e versões. O asdf é agnóstico de linguagem, cobrindo ferramentas da JVM além de Node, Python, Ruby e mais por meio de plugins e um único arquivo .tool-versions. Para uma equipe focada só na JVM, o SDKMAN é profundo e conveniente; para um repositório poliglota, o asdf unifica tudo.

SDKMANasdf
FocoEcossistema JVMPoliglota
Distros JavaMuitos fornecedores curadosVia plugin
Arquivo de configSem arquivo padrão.tool-versions
CoberturaFerramentas da JVMMuitas linguagens
Melhor paraEquipes só de JVMRepos multilinguagem

No CI

O SDKMAN facilita fixar um fornecedor e versão específicos de Java e é bem adequado a pipelines só de JVM. O asdf fixa ferramentas da JVM junto com todo o resto em um único .tool-versions, o que é mais limpo para monorepos poliglotas. No CI, muitas equipes JVM apenas usam setup-java; ambas as ferramentas importam mais para a paridade local.

Acelere

Faça cache do SDK ou do diretório da ferramenta instalada com a chave baseada nas versões que você fixou. Ambos rodam em runners de CI; runners gerenciados mais rápidos encurtam as etapas de instalação do JDK e das ferramentas.

O veredito

Uma equipe centrada na JVM que quer escolhas profundas e curadas de distribuição Java: SDKMAN. Um código-base poliglota que quer uma ferramenta e uma configuração para todas as linguagens: asdf. Eles coexistem bem - SDKMAN para trabalho local na JVM, asdf para fixar versões em todo o repositório.

Guias relacionados