O que é o Hudson e por que todo mundo ainda confunde com Jenkins
Hudson é um servidor de integração contínua open source criado originalmente pela Sun Microsystems em 2006. O nome vem do rio Hudson em Nova York, e sim, tem gente que insiste em perguntar como se escreve Hudson porque acha que é "Hudsonn" ou "Huderson". Não é. É H-U-D-S-O-N, ponto final. A grafia correta importa quando você tá procurando documentação e não quer perder meia hora em links errados. O projeto cresceu rápido, virou padrão da indústria, e aí teve aquela briga legal em 2011 entre a Oracle e a comunidade. A Oracle era dona da Sun e não queria liberar o nome Hudson como marca aberta, então a comunidade pegou o código, mudou o nome para Jenkins e seguiu em frente. O Hudson original ficou praticamente morto desde então, com versões muito desatualizadas. Se você tá começando agora, usa Jenkins. Se precisa manter um legado Hudson rodando, aí que a coisa fica interessante.
Como se escreve Hudson de verdade
Se você precisa digitar isso num campo de busca, num commit, ou num nome de job, a forma correta é simplesmente "hudson" em minúsculas quando se refere ao software, e "Hudson" quando é o nome próprio. No contexto técnico, a convenção da comunidade era usar minúsculas. Nunca vi ninguém usar "HUDSON" em log de build, e quem faz isso provavelmente tá sendo dramático demais. Aqui vai algo que ninguém te conta: se você for reinstalar um Hudson legado em 2024 ou 2025, o binário oficial não é mais atualizado desde 2012. O WAR mais recente da página oficial data de junho de 2012. Isso significa que se você tentar rodar num Java moderno (17, 21), vai esbarrar em incompatibilidades deervlet API que nem sempre dão erro óbvio. O serviço sobe, mas plugins começam a falhar silenciosamente.
Eu tive esse problema há uns dois anos num projeto de migração. A equipe ainda tinha um Hudson 1.395 rodando numa JVM 8 dentro de um container Docker antigo. Quando resolvi atualizar o Java pra 11 só pra sair do ciclo de suporte, o Hudson nem sequer iniciava. O log mostrava um erro de classe não encontrada no package javax.servlet, o que era estranho porque servlet sempre esteve lá. O problema era que a Oracle removeu módulos inteiros do JRE em algumas versões. A solução foi manter o Java 8 especificamente e usar o parâmetro --add-modules java.se.ee se precisasse de módulos adicionais, mas no caso do Hudson, nem precisou — só travar a versão do JDK mesmo.
Instalação e configuração prática
Baixar o Hudson hoje em dia é mais complicado do que deveria. O site oficial hudson-ci.org redireciona para a Jenkins Company agora. Os binários originais ficam archive.org ou em mirrors espalhados. Se você precisa doWAR oficial, o caminho mais seguro é o repositório de releases antigos no GitHub da HudsonCI, que mantém o histórico até a versão 1.395.4. Para rodar:
👉 Clique no botão abaixo para saber mais sobre o assunto!
java -jar hudson.war --httpPort=8080 Isso é tudo. Simples assim. O Hudson instala plugins via interface web na primeira execução, pede pra criar um usuário administrador e pronto. A interface dele é basicamente a mesma do Jenkins dos primórdios — tabelas, links azuis, zero modernidade visual. Funciona, não é bonito.
O que muita gente não sabe é que o Hudson tem um recurso que o Jenkins modernão perdeu: ele era extremamente leve. Em máquinas com 512MB de RAM e 1 núcleo, um Hudson rodava builds sem reclamar. Jenkins hoje em dia come memória como se não houvesse amanhã, especialmente com todos aqueles plugins que vêm como "recomendados" e na verdade são lixo. Se você tem um servidor pequeno e não quer gastar com infraestrutura, Hudson ainda é uma opção viável, desde que mantenha os plugins no mínimo essencial. Um problema real que encontrei: plugins de segurança do Hudson não recebem patches desde 2012. Se o seu Hudson está exposto na internet sem autenticação forte ou atrás de um firewall, isso é um risco. Eu recomendo fortemente colocar um reverse proxy na frente — Nginx com SSL terminando, basic auth, e rate limiting. Mesmo que o Hudson tenha senha, o proxy adiciona uma camada que dificulta scanners automatizados de vulnerabilidade. Leva 10 minutos pra configurar e protege contra o básico.
Migração de Hudson para Jenkins
Se você decide que basta e quer migrar, o Jenkins tem um plugin oficial de importação. Vá em Gerenciar Jenkins Migrar de Hudson. Ele lê o diretório de dados do Hudson e replica jobs, configurações e históricos de build no Jenkins. A maioria das coisas funciona, mas builds antigos com parametros hardcoded podem quebrar porque o Jenkins evoluiu a API de forma incompatível em alguns pontos. A migração completa, do start ao deploy em produção, leva entre 30 minutos e 2 horas dependendo do tamanho da instalação. O tempo real é gasto testando cada job pra ver se passou direito. Não confie cegamente no plugin de migração — pelo menos Execute um build de teste em cada job importante depois de importar.
Se o seu setup é simples, com menos de 20 jobs e poucos plugins, a migração é praticamente indolor. Se você tem 100+ jobs com configurações customizadas, scripts shell dentro dos builds, e plugins que ninguém mais lembra o que fazem,prepare-se pra uma semana de trabalho. Eu passei três dias numa migração dessas porque um dos plugins de deploy usava uma API interna do Hudson que simplesmente não existe no Jenkins.