DEV Community

Matheus Moura
Matheus Moura

Posted on

Gerenciando os gerenciadores de pacotes com ASDF

Gerenciando os gerenciadores de pacotes com ASDF

Em nossa vida como desenvolvedor constantemente temos que ficar mudando de projeto em projeto cada um com suas próprias stacks e suas versões. Para melhorar a transição entre as versões cada linguagem foi criando seu próprio gerenciador de pacotes ou package manager. O Python tem o Pip, o Node tem o Npm ou o Yarn, o Php com o composer. Porém a medida que estamos lidando com stacks diferentes a tendência é que fiquemos com múltiplos gerenciadores de pacotes um para cada linguagem e cada um com sua própria CLI.
Para o nosso dia a dia isso termina sendo um pouco desconfortável porque temos que adaptar a linguagem e termina não ficando prático.
A algum tempo tipo contato com um gerenciador chamado ASDF ele é orientado a plugins e o que significa isso ? Na prática se estamos trabalhando com por exemplo Node, Java e Php só vamos precisar apenas instalar os plugins para essas versões e usar a mesma linguagem do ASDF para instalar qualquer versão das linguagens.
Com isso temos o controle de versão tanto global quanto local, o que mostra-se muito prático quando estamos lidando com projeto com versões diferentes da mesma tecnologia.
No exemplo que quero demonstrar hoje pra vocês, vamos demonstrar como poderíamos ter dois projetos Java com versões diferentes rodando ao mesmo tempo. Isso é possível pois o ASDF permite que tenhamos versões locais para cada projeto.
Importante lembrar que o ASDF está disponível para sistemas Linux e Mac, mas poderemos usar no Windows usando o WSL.
Para o nosso exemplo vamos considerar uma máquina Linux usando o Ubuntu:
Para isso vamos acessar a página de instalação do ASDF e executar os seguintes scripts :

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
Enter fullscreen mode Exit fullscreen mode

Uma vez clonado o projeto precisamos atualizar o bash ou o zsh:

source ~/.zshrc

Feito isso, se abrirmos um novo terminal e digitarmos: 'asdf' deveremos ver a seguinte tela:

Image description

Agora precisaremos instalar o plugin para o Java para isso vamos nesse site do GitHub e executar os códigos abaixo. Logo após podemos efetuar as seguintes códigos.

https://github.com/halcyon/asdf-java
Enter fullscreen mode Exit fullscreen mode

Instalado o plugin do Java podemos listar todas as versões disponíveis com o comando:

asdf list-all java
Enter fullscreen mode Exit fullscreen mode

Para podermos ver o poder do ASDF para gerenciar múltiplas versões vamos criar dois projetos Java com versões diferentes.

Utilize os comandos abaixo para instalar as versões 11 e 21 do Java:

// Java 21
asdf install java adoptopenjdk-jre-21.0.1+12.0.LTS

// Java 11
asdf install java adoptopenjdk-11.0.16+8
Enter fullscreen mode Exit fullscreen mode

Vamos agora criar duas pastas um para cada projeto, chamarei uma de java11 e outra de java21.
Usando o terminal vamos navegar até a pasta java11 e digitar o seguinte comando:

asdf local java adoptopenjdk-11.0.16+8
Enter fullscreen mode Exit fullscreen mode

Da mesma forma vamos fazer para a pasta java21 e digitar o seguinte comando:

asdf local java adoptopenjdk-21.0.0+35.0.LTS
Enter fullscreen mode Exit fullscreen mode

Com isso se testarmos usando o comando:

java -version
Enter fullscreen mode Exit fullscreen mode

em cada uma das pastas devemos ver algo dessa forma:

Image description

Com isso estamos preparados para rodar dois projetos Java ao mesmo tempo com versões totalmente distintas. Lembre-se que isso funciona para outras linguagens como PHP, Go, Erlang, Node Js. Bastando instalar os plugins referente a linguagem que deseja gerenciar suas versões. Para isso podemos pesquisar algo como: asdf plugin go, por exemplo para encontrar o plugin referente a linguagem Go.

Top comments (0)