anúncios

quarta-feira, 26 de novembro de 2025

Como automatizar variáveis de ambiente em notebooks corporativos sem permissão de admin

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?

  1. Elimina configurações manuais e erros
  2. O script garante que todo mundo tenha exatamente o mesmo ambiente.

  3. Permite múltiplos projetos com versões diferentes
  4. Exemplo:

    • Projeto A -> Java 17, Quarkus 3.15, Maven 3.9
    • Projeto B -> Java 21, Quarkus 3.27, Maven 4.x

    Cada projeto terá seu próprio env-projeto.bat.

  5. Não exige direitos administrativos
  6. Nada vai para o PATH do sistema.

    Tudo roda no escopo do usuário.

  7. Fácil de versionar e distribuir
  8. O diretório tools-dev pode ser:

    • compartilhado no Teams
    • versionado no Git (sem binários, apenas instruções)
    • disponibilizado em pacote zip para novos devs
  9. Facilita onboarding de novos desenvolvedores
  10. O dev novo só faz:

    • -extrair o pacote tools-dev
    • configurar os diretórios internos
    • executar terminal.bat

    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