anúncios

terça-feira, 31 de março de 2026

Resolvendo erro 404 ao instalar pacotes no Ubuntu

Recentemente, ao tentar instalar o libsqlite3-dev no Ubuntu 24.10 (Oracular), deparei com o seguinte erro:

Err:1 http://security.ubuntu.com/ubuntu oracular-updates/main amd64 libsqlite3-dev amd64 3.46.1-1ubuntu0.2
404 Not Found [IP: 2a06:bc80:0:1000::17 80]
Error: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Por que isso acontece?

O Ubuntu segue um ciclo de lançamento semestral. A cada 6 meses, uma nova versão é lançada, e as versões anteriores são movidas para o repositório old-releases.ubuntu.com.

O Ubuntu 24.10 (codinome "Oracular") foi lançado em outubro de 2024. No entanto, os mirrors e repositórios de segurança podem não ter todas as versões de pacotes imediatamente disponíveis, especialmente durante o período de transição.

Por que o apt update não resolve?

Em alguns casos, mesmo após executar apt update, o erro persiste porque:

  1. O pacote foi movido antes da sincronização
  2. O repositório de segurança pode ter movido o pacote para old-releases antes do apt-get update refletir essa mudança

  3. Sincronização incompleta
  4. Nem todos os mirrors estão sincronizados com o repositório principal

  5. Ciclo de vida curto
  6. Versões não-LTS têm suporte de apenas 9 meses, então os repositórios são migrados mais rapidamente

A Solução

A solução é simples: alterar o sources.list.d/ubuntu.sources para usar old-releases.ubuntu.com em vez de archive.ubuntu.com.

Procedimentos

  1. Faça backup do ubuntu.sources:
  2. sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.backup
  3. Edite o arquivo (substitua todas as ocorrências):
  4. sudo sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list.d/ubuntu.sources
    sudo sed -i 's/security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list.d/ubuntu.sources

    Ou edite manualmente se o arquivo estiver em outro local como /etc/apt/sources.list.d/ubuntu.sources:

    deb http://old-releases.ubuntu.com/ubuntu oracular main restricted universe multiverse
    deb http://old-releases.ubuntu.com/ubuntu oracular-updates main restricted universe multiverse
    deb http://old-releases.ubuntu.com/ubuntu oracular-security main restricted universe multiverse
  5. Atualize e instale:
  6. sudo apt update
    sudo apt install libsqlite3-dev

É Comum em Versões Não-LTS?

Sim, é relativamente comum, especialmente em versões de curto suporte (non-LTS).

ciclo de Vida do Ubuntu

Versão Codnome Tipo Lançamento Fim de Suporte Status
Ubuntu 24.04 Noble Numbat LTS Abril 2024 Abril 2029 ✅ Suportado
Ubuntu 24.10 Oracular Oriole Non-LTS Outubro 2024 Julho 2025 ✅ Suportado
Ubuntu 23.10 Mantic Minotaur Non-LTS Outubro 2023 Julho 2024 ❌ End of Life
Ubuntu 22.04 Jammy Jellyfish LTS Abril 2022 Abril 2027 ✅ Suportado
Ubuntu 22.10 Kinetic Kudu Non-LTS Outubro 2022 Julho 2023 ❌ End of Life
Ubuntu 21.10 Impish Indri Non-LTS Outubro 2021 Julho 2022 ❌ End of Life
Ubuntu 20.04 Focal Fossa LTS Abril 2020 Abril 2025 ❌ End of Life

Por que é mais comum em non-LTS?

  1. Ciclo mais curto:
  2. Os pacotes são migrados para old-releases mais rapidamente

  3. Menos prioridade:
  4. Mantimentos de repositórios podem priorizar versões LTS

  5. Volume de usuários:
  6. Menos pessoas usam versões non-LTS, então bugs podem demorar mais para serem reportados

  7. Transição de versão:
  8. O período entre o lançamento e a sincronização completa dos mirrors pode gerar inconsistências

Histórico de problemas similares:

  • Ubuntu 23.10 (Mantic)
  • diversos pacotes tiveram problemas semelhantes

  • Ubuntu 22.10 (Kinetic)
  • mesmo problema

  • Ubuntu 21.10 (Impish)
  • mesmo cenário

Considerações finais

Se você encontrar erro 404 ao instalar pacotes em versões não-LTS do Ubuntu, não se preocupe, é um problema comum e facilmente resolvido. A solução de usar old-releases.ubuntu.com é temporária e não deve causar problemas a longo prazo, já que essas versões têm suporte limitado de qualquer forma.

Para ambientes de produção, sempre recomendo usar versões LTS (como 22.04 ou 24.04) para evitar surpresas como essa.

Feito!

quinta-feira, 26 de março de 2026

Onde colocar as validações? O dilema entre DTO, Service e Entidade

Se você já desenvolveu uma API, certamente parou diante do teclado com uma dúvida cruel: "Onde eu coloco essa validação?".

Devo usar as anotações do Bean Validation no DTO? Devo verificar se o usuário existe dentro do Service? Ou será que a regra de negócio deveria estar protegida dentro da Entidade?

Vamos explorar como organizar sua casa (ou melhor, seu código) para que cada camada cumpra o seu papel sem gerar uma bagunça de responsabilidades.

  1. O DTO: O Porteiro do seu Sistema
  2. O DTO (Data Transfer Object) é a primeira linha de defesa. Ele representa os dados que vêm de fora (do frontend ou de outra API) para dentro do seu sistema.

    O que validar aqui: O foco é puramente técnico e estrutural. Formatos de e-mail, se um campo obrigatório está presente, o tamanho mínimo de uma senha ou se um valor numérico está dentro de um intervalo aceitável.

    O insight: O DTO não conhece as regras do seu negócio. Ele apenas garante que o dado é "aceitável" para cruzar a fronteira da aplicação. Se o JSON está malformado ou falta um campo essencial, o sistema nem deve perder tempo processando.

  3. A Camada de Service: O Maestro
  4. No ecossistema Java/Spring/Quarkus, o Service costuma ser o coração da aplicação, mas ele tem uma função específica: orquestração.

    O que validar aqui: Aqui moram as validações que dependem de infraestrutura. Exemplo: "Este e-mail já está cadastrado no banco de dados?" ou "Este cliente tem saldo suficiente para esta transação?.

    A realidade do mercado: Embora muitos defendam o DDD (Domain-Driven Design) puro, assim como "Modelo Anêmico" (entidades com apenas getters e setters) é muito comum no mercado. Nesses casos, o Service acaba herdando quase toda a lógica de negócio por necessidade técnica.

  5. Entidades: A Alma do Negócio
  6. Em uma arquitetura ideal, a Entidade deveria ser "rica". Ela deve garantir a integridade do domínio independentemente de quem a chama.

    O insight: Se você tem uma regra que diz que "um pedido não pode ser criado sem pelo menos um item", essa lógica deveria estar dentro da classe "Pedido", e não espalhada em múltiplos Services.

    Isso evita que o sistema entre em estados inválidos por erro de um desenvolvedor que esqueceu de chamar uma validação no Service.

  7. E o Banco de Dados?
  8. Para quem trabalha com sistemas legados ou grandes ERPs, as validações no banco (via constraints, triggers ou procedures) são uma realidade. Embora o desenvolvimento moderno tente manter a lógica no código para facilitar testes, o banco de dados é a última linha de defesa para garantir a integridade dos dados.

Considerações finais

O pragmatismo vence o purismo.

A grande lição que tiramos dessa discussão é que contexto é rei.

Se você trabalha em uma empresa que segue padrões rígidos de Service, não tente ser o "rebelde do DDD" sozinho. O código precisa ser legível e sustentável para a equipe. O segredo é ter camadas:

  1. DTO valida a forma.
  2. Service orquestra a lógica e consulta o mundo externo.
  3. Entidade protege as regras fundamentais do negócio.

Quanto mais camadas de validação você tiver (de forma organizada), mais seguro e resiliente será o seu software.

Feito!

quinta-feira, 19 de março de 2026

Instruções de entrega do IRPF 2026

O prazo de entrega da Declaração Anual do Imposto de Renda Pessoa Física (IRPF) 2026, ano-calendário 2025, começa nesta segunda-feira, 23 de março, e segue até o próximo dia 29 de maio, às 23h59. Pessoas físicas que receberam rendimentos tributáveis acima de R$ 35.584,00 assim como aquelas que obtiveram receita bruta da atividade rural acima de R$ 177.920,00, são obrigadas a declarar.

A declaração pré-preenchida já estará plenamente disponível no início do prazo de entrega da declaração, com novos dados incluídos em relação ao ano passado, informações do e-Social relativas aos empregados domésticos, dados do Imposto de Renda Retido na Fonte sobre a renda variável e recuperação das informações de pagamento (DARFs). Todas as regras estão presentes na Instrução Normativa RFB nº 2.312/2026 , publicada no Diário Oficial da União desta segunda-feira, 16/3.

A declaração pré-preenchida virá com as seguintes informações:

  • Informações da declaração anterior do contribuinte: identificação, endereço
  • Rendimentos e pagamentos da Dirf, Dimob, DMED e Carnê-Leão
  • Rendimentos isentos em função de moléstia grave e códigos de juros
  • Rendimentos de restituição recebidas no ano-calendário
  • Contribuições de previdência privada
  • Atualização do saldo de conta bancária e poupança
  • Atualização do saldo de Fundos de investimento
  • Imóveis adquiridos no ano-calendário
  • Doações efetuadas no ano-calendário
  • Informação de Criptoativos
  • Conta bancária/poupança ainda não declarada
  • Fundo de investimento ainda não declarado
  • Contas bancárias no exterior

RENDIMENTOS NO EXTERIOR — A partir deste ano, os dados de contas bancárias no exterior foram incluídos na declaração pré-preenchida, após a legislação determinar a tributação de offshores (empresas de investimentos em outros países) e rendimentos no exterior. Por causa da lei que antecipou a cobrança de Imposto de Renda sobre Fundos Exclusivos e tributou as offshores, os rendimentos no exterior passaram a ser tributados de forma definitiva na declaração de ajuste anual, com alíquota de 15%. Até 2023, o pagamento era feito mensalmente, mas passou a ser feito anualmente. Na declaração, os bens que representem investimentos no exterior passam a permitir a informação do rendimento e do imposto pago, tanto no Brasil como no exterior.

OUTRAS MUDANÇAS — A declaração terá poucas mudanças em relação à do ano passado. As principais são as situações em que o contribuinte está obrigado a entregar o documento, por causa do reajuste da faixa de isenção no ano passado.

Em relação às obrigatoriedades, as mudanças foram as seguintes:

  • Valor de rendimentos tributáveis anuais que obrigam a entrega da declaração subiu de R$ 33.888,00 para R$ 35.584,00
  • Limite da receita bruta de obrigatoriedade para atividade rural subiu de R$ 169.440,00 para R$ 177.920,00
  • Quem atualizou valor de bens imóveis e pagou ganho de capital diferenciado em dezembro de 2025 terá de preencher a declaração
  • Quem apurou rendimentos no exterior de aplicações financeiras e de lucros e dividendos passou a declarar anualmente
  • As demais obrigatoriedades foram mantidas.

Outra mudança é a maior prioridade para quem simultaneamente utilizou a declaração pré-preenchida e optou pelo recebimento da restituição via Pix. Até o ano passado, a prioridade era definida apenas com base na utilização de uma das duas ferramentas.

Estão, portanto, isentas da declaração as pessoas que receberam até dois salários-mínimos mensais durante 2025, salvo se se enquadrarem em outro critério de obrigatoriedade. Os demais critérios de obrigatoriedade mantiveram-se os mesmos. Dentre os principais, destacam-se aqueles aplicáveis aos contribuintes que:

  • receberam rendimentos isentos, não tributáveis ou tributados exclusivamente na fonte superior a R$ 200 mil;
  • alienaram em bolsas de valores, de mercadorias, de futuros e assemelhadas valores em soma superior a R$ 40 mil ou com ganhos líquidos sujeitas à incidência do imposto;
  • tiveram, em 31 de dezembro de 2025, a posse ou a propriedade de bens ou direitos, inclusive terra nua, de valor total superior a R$ 800 mil;
  • passaram à condição de residente no Brasil em qualquer mês e estava nesta condição no fim de 2025.

MULTA — Quem enviar a declaração fora do prazo deverá pagar multa de 1% sobre imposto devido, com valor mínimo de R$ 165,74, ou de 20% do valor devido, prevalecendo o maior valor.

Reinstituções

A Receita Federal pretende antecipar o pagamento da restituição do Imposto de Renda este ano. A previsão é que 80% dos contribuintes que tenham direito à restituição recebam os valores até o dia 30 de junho. A maior agilidade no processamento possibilitará a redução da quantidade de lotes este ano, que passarão de cinco para quatro. O primeiro lote será pago no dia 29 de maio, com os subsequentes ocorrendo nos dias 30/6, 31/7 e 31/8. Confira a ordem de prioridades nas restituições:

1º) Idade igual ou superior a 80 anos;

2º) Idade igual ou superior a 60 anos, deficientes e portadores de moléstia grave;

3º) Pessoa que tenha maior fonte de renda vinda do magistério;

4º) Quem utilizou conjuntamente a declaração pré-preenchida e optou pela restituição no Pix;

5º) Quem utilizou exclusivamente a declaração pré-preenchida ou optou pela restituição no Pix; e

6º) Demais contribuintes

Restituição Automática – ano-calendário 2024

Outra novidade anunciada na coletiva foi o pagamento de um lote especial de restituição para os contribuintes que não entregaram a declaração de Imposto de Renda em 2025 por não estarem obrigados, mas tinham direito à restituição por fatos ocorridos em 2024. Esta situação pode acontecer, por exemplo, com um empregado que teve imposto de renda retido na fonte por ter recebido salário no primeiro trimestre de 2024, mas ficou desempregado posteriormente e não obteve renda no restante do ano para se encaixar nos critérios de obrigatoriedade de entrega da declaração. A parcela de imposto que foi retida dá a ele direito à restituição, que será realizada através de uma declaração automática elaborada pela própria Receita Federal a partir de 15 de junho deste ano, com o crédito a partir de 15 de julho.

Segundo a Receita Federal, cerca de 4 milhões de contribuintes se encaixam nesta situação, com um valor médio de R$ 125 em restituições devidas, totalizando um montante de R$ 500 milhões.

A declaração automática será elaborada para contribuintes que tem direito à restituição de até R$ 1 mil, com CPF regular e chave Pix vinculada ao CPF. O pagamento será feito de maneira automática. A partir do dia 15 de junho, o contribuinte poderá verificar se teve sua declaração automaticamente gerada na página da Receita Federal, e poderá realizar retificações na declaração se assim o desejar.

"Este é um importante mecanismo de Justiça Fiscal, no qual a Receita Federal passa a devolver valores que o cidadão tem direito, mas não pleiteou, ou por falta de conhecimento ou por falta de recursos para fazer a sua declaração", explicou o responsável pelo programa do Imposto de Renda 2026, José Carlos da Fonseca.

A Receita Federal recomenda que os declarantes utilizem a pré-preenchida, que insere automaticamente dados como rendimentos recebidos e despesas médicas efetuadas. Ao minimizar a possibilidade de erros, a declaração pré-preenchida evita que o contribuinte seja retido na malha fiscal, popularmente conhecida como “malha fina”. É importante destacar, porém, que os dados da declaração são enviados por terceiros como empresas e planos de saúde, e é responsabilidade do contribuinte ver se eles estão corretos.

Além do Programa Gerador da Declaração, o contribuinte também pode utilizar o sistema "Meu Imposto de Renda", solução online para celulares e tablets. O acesso ao Meu Imposto de Renda exige autenticação via Plataforma GOV.BR (níveis ouro ou prata), com acesso por meio da página gov.br/receitafederal, pelo centro virtual de atendimento ao contribuinte (Portal e-Cac) ou pelo aplicativo da Receita Federal.

O sistema "Meu Imposto de Renda" recebeu várias melhorias em relação ao ano passado. A interface de ajuda está mais amigável e o sistema agora emite alertas para erros comuns, tais como pagamentos para dependentes sem a declaração de rendimentos e despesas médicas elevadas. "Outro alerta é quando o contribuinte informa uma chave PIX vinculada ao CPF que não existe. O objetivo é evitar erros e estabelecer um diálogo com o cidadão através do próprio programa", explicou José Carlos da Fonseca. O sistema também foi otimizado para recuperar automaticamente informações de dependentes que estejam cadastrados regularmente no sistema CPF e tenham sido declarados como tal nas declarações dos últimos três anos, sem necessidade de autorização específica para a recuperação de dados.

Referência

Gov.BR

Feito!

O Linux foi banido no Brasil?

O texto da Lei nº 15.211/2025 (ECA Digital), o decreto regulamentador de março de 2026 e a repercussão técnica que gerou esse pânico digital.

Vou direto ao ponto: Dizer que o Linux foi "banido" no Brasil é Fake News. Não existe qualquer artigo na lei que proíba o uso, a distribuição ou a posse do sistema operacional Linux. O que existe é um desafio de conformidade técnica que foi interpretado de forma sensacionalista.

Abaixo, apresento o parecer jurídico e técnico sobre a situação:

  1. O que a Lei realmente diz?
  2. O ECA Digital (Lei 15.211/2025) foca na proteção de menores contra conteúdos inadequados e coleta predatória de dados. No seu Artigo 12, ela estabelece obrigações para:

    Provedores de redes sociais;

    Lojas de aplicativos (como Play Store ou Apple Store);

    Sistemas operacionais de terminais.

    A lei exige que esses entes ofereçam mecanismos de verificação de idade (proibindo a autodeclaração simples) e ferramentas de controle parental.

  3. Por que surgiu o rumor do "Banimento"?
  4. O problema não é uma proibição, mas a responsabilidade civil e financeira.

    Projetos de software livre, como o Arch Linux 32 ou o MidnightBSD, são mantidos por voluntários e não possuem CNPJ ou recursos para implementar APIs caras de verificação de identidade (como as que exigem biometria ou checagem de documentos).

    Temendo multas que podem chegar a R$ 50 milhões por infração, alguns projetos menores decidiram, por conta própria, bloquear o acesso de IPs brasileiros aos seus sites de download como medida preventiva de "segurança jurídica". Foi uma decisão dos desenvolvedores estrangeiros, e não uma ordem do governo brasileiro.

  5. O Linux vai parar de funcionar?
  6. Absolutamente não.

Grandes Distribuições: Empresas como a Canonical (Ubuntu) e a Red Hat possuem corpo jurídico e financeiro para se adequar ou negociar termos com a ANPD (Autoridade Nacional de Proteção de Dados).

Infraestrutura Nacional: O próprio Governo Brasileiro é um dos maiores usuários de Linux (em servidores, urnas eletrônicas e datacenters). Banir o Linux seria paralisar o Estado brasileiro e a internet nacional, o que é juridicamente e logicamente impossível.

Uso Pessoal: Você pode continuar usando a sua distro Linux preferida normalmente. A lei regula o fornecedor do serviço, não pune o usuário final por ter o sistema instalado.

Títulos Sensacionalistas no YouTube

Os títulos "Linux banido" são exemplos clássicos de clickbait. Eles pegam um fato real (a dificuldade técnica de pequenos projetos de código aberto em cumprir uma lei de verificação de idade) e o transformam em uma catástrofe inexistente para gerar visualizações.

Resumo do Parecer

Aspecto Analisado Realidade Jurídica (Pós-Regulamentação 2026)
O Linux foi proibido? Não. O sistema continua legal. A lei foca em mecanismos de proteção de menores, não na proibição de kernels ou arquiteturas de software livre.
Por que há bloqueios? Auto-bloqueio preventivo. Alguns projetos internacionais (sem representação no Brasil) bloquearam IPs brasileiros para evitar multas de até R$ 50 milhões, por não possuírem infraestrutura de verificação de idade.
Uso em Servidores e Urnas Garantido. O Linux é a base da infraestrutura crítica do Estado Brasileiro. Bani-lo seria tecnicamente impossível e juridicamente nulo por ferir a continuidade do serviço público.
Risco ao Usuário Final Zero. As sanções do ECA Digital são administrativas e direcionadas aos fornecedores e distribuidores que não implementarem controle parental, nunca ao cidadão que utiliza o sistema.
Veredito sobre os Rumores Fake News / Clickbait. Títulos que afirmam "Linux Banido" distorcem um desafio de compliance técnico transformando-o em uma proibição estatal inexistente.

Considerações finais

Não há motivo para pânico. O Linux continua sendo legal e amplamente utilizado no Brasil. O que estamos presenciando é o "atrito" entre uma legislação nova e o modelo de desenvolvimento descentralizado do software livre, algo que será ajustado via regulamentação administrativa nos próximos meses.

Para quem deseja se aprofundar e evitar cair em armadilhas de engajamento, a recomendação é uma só: leia o texto da regulamentação na íntegra. Ao analisar o documento oficial, fica evidente que os vídeos no YouTube com títulos como "Linux banido no Brasil" ou similares são puramente sensacionalistas e clickbait. Eles exploram o medo da comunidade técnica para gerar visualizações, distorcendo um desafio de conformidade em uma proibição que nunca existiu.

Referência

Governo do Brasil

Guia Offical

Feito!

quarta-feira, 11 de março de 2026

Maven vs Gradle em projetos Java: Qual escolher?

No ecossistema Java, ferramentas de build automation são fundamentais para compilar código, gerenciar dependências, executar testes e gerar artefatos como JAR ou WAR. As duas ferramentas mais utilizadas são Apache Maven e Gradle.

Ambas resolvem o mesmo problema, automatizar o ciclo de build de aplicações Java, porém utilizam abordagens diferentes.

No presente artigo vamos analisar:

  • O que são Maven e Gradle
  • Como cada um funciona
  • Prós e contras
  • Quando usar cada ferramenta em projetos Java

O que é Maven?

Apache Maven é uma ferramenta de build criada pela Apache Software Foundation e lançada em 2004.

Seu principal objetivo é padronizar o processo de build em projetos Java.

Ele utiliza um arquivo chamado pom.xml (Project Object Model) onde são declarados:

  • dependências
  • plugins
  • versão do projeto
  • configuração de build
  • repositórios

Exemplo do arquivo pom.xml para o projeto Spring Framework 7 com Java 21 + JUnit + cobertura mínima de 80%

pom.xml

O Maven segue o princípio Convention over Configuration, ou seja, ele já possui uma estrutura padrão:


src/main/java
src/main/resources
src/test/java
src/test/resources

Essa padronização facilita a colaboração entre equipes.

O que é Gradle?

Gradle surgiu em 2012 como uma alternativa mais flexível e performática ao Maven.

Ele utiliza uma DSL baseada em Groovy ou Kotlin para definir o build.

Exemplo de arquivo build.gradle para o projeto Spring Framework 7 e Java 21 + JUnit + cobertura mínima de 80%:

build.gradle

O Gradle foi projetado para:

  • builds mais rápidos
  • maior flexibilidade
  • melhor suporte a projetos complexos

Hoje ele é amplamente usado em projetos modernos, incluindo o build padrão do Android Studio.

Diferenças conceituais

Característica Maven Gradle
Configuração XML (pom.xml) DSL baseada em Groovy ou Kotlin
Filosofia Convention over Configuration Alta flexibilidade e customização
Performance Mais lento em builds grandes Mais rápido com incremental build e cache
Curva de aprendizado Mais simples para iniciantes Maior devido à DSL programável
Customização Limitada via plugins Muito alta, com scripts programáveis

Prós do Maven

  1. Padronização
  2. O Maven impõe uma estrutura padrão para projetos.

    Isso facilita:

    onboarding de novos desenvolvedores

    manutenção de projetos

    integração entre equipes

  3. Ecossistema maduro
  4. O Maven possui milhares de plugins prontos.

    Exemplos:

    compilação

    geração de documentação

    análise de código

    empacotamento

  5. Simplicidade conceitual
  6. Apesar do XML ser verboso, o modelo é simples:

    
    clean
    compile
    test
    package
    install
    deploy
    
    

    Esse ciclo é chamado de build lifecycle.

  7. Alta adoção corporativa
  8. Muitas empresas utilizam Maven em aplicações enterprise, especialmente em projetos baseados em:

    • Spring Framework
    • Spring Boot
    • aplicações legadas Java

Contras do Maven

  1. XML verboso
  2. Configurações simples podem virar arquivos grandes.

    Exemplo comum: pom.xml com centenas de linhas.

  3. Customização limitada
  4. Criar pipelines complexos pode ser difícil.

  5. Performance menor
  6. Comparado ao Gradle, o Maven:

    • recompila mais coisas
    • possui menos otimizações

Prós do Gradle

  1. Build mais rápido
  2. Gradle implementa várias otimizações:

    • incremental build
    • build cache
    • execução paralela

    Isso reduz bastante o tempo de build em projetos grandes.

  3. DSL mais expressiva
  4. A configuração é escrita em Groovy ou Kotlin, permitindo:

    • lógica condicional
    • loops
    • funções
    • scripts reutilizáveis
  5. Melhor para projetos grandes
  6. Gradle funciona muito bem com:

    • monorepos
    • microservices
    • builds multi-módulo
  7. Flexibilidade extrema
  8. É possível construir praticamente qualquer pipeline de build.

Contras do Gradle

  1. Curva de aprendizado maior
  2. Desenvolvedores precisam entender:

    • Groovy ou Kotlin
    • conceitos de tasks
    • lifecycle do Gradle
  3. Menos padronização
  4. Como tudo pode ser customizado, projetos podem ficar inconsistentes entre equipes.

  5. Debug de build mais complexo
  6. Scripts muito dinâmicos podem dificultar troubleshooting.

Maven vs Gradle em projetos reais

Na prática, a escolha depende do tipo de projeto.

Use Maven quando:

  • o projeto é corporativo tradicional
  • a equipe prefere padronização
  • builds não são extremamente complexos
  • onboarding rápido é importante

Use Gradle quando:

  • o projeto é grande ou modular
  • erformance de build é crítica
  • pipelines precisam de customização
  • o projeto envolve Android

Tendências do ecossistema Java

Nos últimos anos, Gradle tem crescido bastante, especialmente em projetos modernos.

Entretanto, Maven ainda domina grande parte do mercado corporativo devido à sua estabilidade e padronização.

Ou seja:

  • Maven -> estabilidade e padrão
  • Gradle -> flexibilidade e performance

Considerações finais

Tanto Apache Maven quanto Gradle são excelentes ferramentas de build para projetos Java.

A escolha correta depende de fatores como:

  • complexidade do projeto
  • tamanho da equipe
  • necessidade de customização
  • tempo de build

Em termos simples:

  • Maven é previsível e padronizado
  • Gradle é poderoso e flexível

Um engenheiro de software moderno deve conhecer ambos, pois cada um continua sendo amplamente utilizado nas empresas.

Feito!