Uma solução prática para Java, Maven, Node, Quarkus e integrações corporativas usando scripts .bat
Em ambientes corporativos é comum que os desenvolvedores utilizem notebooks bloqueados, sem permissões administrativas para instalar ferramentas ou alterar o PATH do sistema. Mesmo assim, muitos projetos dependem de um ambiente consistente que inclui versões específicas de Java, Maven, Node, NVM e variáveis de configuração relacionadas a APIs internas, integrações com SSO e conexões com bancos de dados.
Para resolver esse problema e manter a produtividade, uma abordagem eficiente é preparar um diretório tools-dev contendo todas as ferramentas necessárias em formato .zip, que o próprio desenvolvedor extrai para seu diretório de usuário sem precisar de privilégios elevados. Em seguida, um conjunto de scripts .bat automatiza a configuração das variáveis de ambiente apenas na sessão do terminal, sem alterar nada do sistema.
O presente post explica a estrutura recomendada, o motivo dessa prática e como implementar o processo.
Por que usar um diretório tools-dev com arquivos .zip das ferramentas?
Em um notebook corporativo o desenvolvedor geralmente não pode:
- Instalar Java no diretório Program Files
- Instalar Node.js globalmente
- Alterar PATH do sistema
- Usar instaladores .msi
- Criar diretórios em locais protegidos
Por outro lado, ele pode:
Extrair arquivos .zip dentro de C:\Users\usuario\
Configurar variáveis apenas na sessão atual
Executar scripts .bat
Montar seu ambiente local isolado
Por isso, a estratégia recomendada é:
Criar um diretório tools-dev contendo:
- java17.zip
- maven3.9.zip
- node18.zip
- nvm.zip
- configurações auxiliares (scripts .bat)
Estrutura recomendada:
C:\Users\usuario\tools-dev\
├─ java17.zip
├─ maven.zip
├─ node18.zip
├─ nvm.zip
├─ npm18.zip
├─ env-projeto.bat
├─ terminal.bat
└─ desenvolvimento\
├─ java\
├─ maven\
├─ node\
├─ nvm\
└─ etc...
O desenvolvedor baixa o pacote com os .zip, extrai tudo dentro do tools-dev uma vez e a estrutura fica pronta permanentemente.
Essa abordagem garante:
- padronização entre todos os membros da equipe
- independência de permissões administrativas
- isolamento total entre projetos
- zero impacto no ambiente global do Windows
Script 1: env-projeto.bat
Arquivo responsável por carregar todas as variáveis do projeto:
@echo off
echo Carregando variáveis do projeto...
rem ==== Caminhos das ferramentas descompactadas ====
set JAVA_HOME=C:\Users\usuario\tools-dev\desenvolvimento\java
set MAVEN_HOME=C:\Users\usuario\tools-dev\desenvolvimento\maven
set NODE_HOME=C:\Users\usuario\tools-dev\desenvolvimento\node
set NVM_HOME=C:\Users\usuario\tools-dev\desenvolvimento\nvm
rem ==== Variáveis específicas do projeto ====
set REALM_NTRANET=realm_intranet
set REALM_INTERNET=realm_internet
set SSO_CLIENT_ID=cliente-sso
set SSO_URI_INTERNET=https://auth-externo.empresa.com
set SSO_URI_INTRANET=https://auth-interno.empresa.local
set API_KEY=SUA_API_KEY_AQUI
rem ==== Datasource ====
set DS_KIND=mssql
set QUARKUS_DEFAULT_SCHEMA=dbo
set DS_DIALECT=org.hibernate.dialect.SQLServerLDialect
set DS_URL=jdbc:sqlserver://IPSERVIDORDB:1433;databaseName=bancoNome;integratedSecurity=true;encrypt=false;trustServerCertificate=true
set DS_GENERATION=none
#set QUARKUS_DATASOURCE_USERNAME=usuario
#set QUARKUS_DATASOURCE_PASSWORD=senha
set QUARKUS_DATASOURCE_JDBC_URL=%DS_URL%
rem ==== Serviços internos ====
set API_SISGF=http://localhost:8081/sisgf
set API_SIICO=http://localhost:8082/siico
set API_SISRH=http://localhost:8083/sisrh
rem ==== PATH desta sessão ====
set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%NODE_HOME%;%NVM_HOME%;%PATH%
echo Ambiente carregado.
OBS: A configuração na variável QUARKUS_DATASOURCE_JDBC_URL é com MS SQL Server configurado com autenticação de usuário do Windows
Por isso as linhas das variáveis QUARKUS_DATASOURCE_USERNAME e QUARKUS_DATASOURCE_PASSWORD estão comentadas.
Tudo é aplicado apenas no terminal atual, sem alterar o PATH global.
Script 2: terminal.bat
Ele simplesmente abre o CMD já carregando o ambiente configurado:
cmd.exe /k "C:\Users\usuario\tools-dev\env-projeto.bat"
Assim, ao clicar no terminal.bat, o desenvolvedor já entra no terminal com:
- Java configurado
- Maven configurado
- Node e NPM configurados
- NVM funcionando
- Todas as variáveis corporativas carregadas
Por que essa automação é tão útil?
- Elimina configurações manuais e erros
- Permite múltiplos projetos com versões diferentes
- Projeto A -> Java 17, Quarkus 3.15, Maven 3.9
- Projeto B -> Java 21, Quarkus 3.27, Maven 4.x
- Não exige direitos administrativos
- Fácil de versionar e distribuir
- compartilhado no Teams
- versionado no Git (sem binários, apenas instruções)
- disponibilizado em pacote zip para novos devs
- Facilita onboarding de novos desenvolvedores
- -extrair o pacote tools-dev
- configurar os diretórios internos
- executar terminal.bat
O script garante que todo mundo tenha exatamente o mesmo ambiente.
Exemplo:
Cada projeto terá seu próprio env-projeto.bat.
Nada vai para o PATH do sistema.
Tudo roda no escopo do usuário.
O diretório tools-dev pode ser:
O dev novo só faz:
Em menos de 2 minutos ele está pronto para programar.
Considerações finais
A criação de um diretório tools-dev com os .zip das ferramentas e scripts .bat que configuram as variáveis de ambiente apenas na sessão do usuário é uma estratégia altamente eficiente para ambientes corporativos com restrições administrativas. Isso cria um fluxo de trabalho organizado, reprodutível, seguro e 100 por cento alinhado às boas práticas de equipes de desenvolvimento profissional.
Feito!
Nenhum comentário:
Postar um comentário