javax-to-jakarta-migration
Auxilia seu agente a migrar código Java de 'javax.*' para 'jakarta.*'. É essencial para atualizar frameworks e garantir compatibilidade com versões mais recentes.
O que ela faz
Esta ferramenta ajuda a atualizar seu código Java, substituindo pacotes antigos (javax.*) por pacotes mais novos (jakarta.*). Isso é necessário para usar versões mais recentes de tecnologias como o servidor web Tomcat ou o framework Jakarta EE.
Quando usar
- ✓Quando você quer usar o Tomcat 10+ ou Jakarta EE.
- ✓Quando uma ferramenta de atualização de Java ou Spring Boot sugere essa migração.
- ✓Quando você pede explicitamente para migrar de 'javax' para 'jakarta'.
Exemplo do que pedir para a IA
“Atualize meu código Java para usar o namespace Jakarta EE.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta encontra e substitui os pacotes 'javax.*' por 'jakarta.*' em seus arquivos de código e configurações. Ela também atualiza as dependências do seu projeto para as versões corretas do Jakarta EE.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill javax-to-jakarta-migrationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/javax-to-jakarta-migration/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Migração javax → jakarta
Quando Usar
- O usuário solicita explicitamente a migração para o namespace jakarta, Tomcat 10+/11 ou Jakarta EE
java-upgradeouspring-boot-4-migrationdelegam a migração do namespace
Detectar apenas importações javax.* não autoriza esta migração; relate-as em vez disso.
Em projetos Spring Boot, o BOM do Boot gerencia as versões do Jakarta; não fixe as versões abaixo, e deixe a versão do Boot decidir o nível do Jakarta EE (Boot 4 = Jakarta EE 11, Servlet 6.1). Os exemplos abaixo visam Jakarta EE 10 (Servlet 6.0, Tomcat 10.1+) em projetos não-Boot.
Procedimento
Passo 0 — Linha de Base
Execute ./mvnw verify ou ./gradlew build primeiro e registre o resultado; não migre com uma linha de base vermelha. Faça a alteração em um commit/passo dedicado.
Passo 1 — Escanear Uso de javax
Procure na base de código por todas as importações javax.* que precisam de migração:
javax.servlet.* → jakarta.servlet.*
javax.persistence.* → jakarta.persistence.*
javax.validation.* → jakarta.validation.*
javax.annotation.* → jakarta.annotation.*
javax.inject.* → jakarta.inject.*
javax.enterprise.* → jakarta.enterprise.*
javax.faces.* → jakarta.faces.*
javax.ws.rs.* → jakarta.ws.rs.*
javax.el.* → jakarta.el.*
javax.json.* → jakarta.json.*
javax.mail.* → jakarta.mail.*
javax.websocket.* → jakarta.websocket.*
NÃO migre estas (elas permanecem em javax.*):
javax.sql.*— parte do JDKjavax.naming.*— parte do JDK (JNDI)javax.crypto.*— parte do JDKjavax.net.*— parte do JDKjavax.security.auth.*— parte do JDKjavax.swing.*,javax.xml.parsers.*— pacotes JDK
Passo 2 — Atualizar pom.xml
Substitua as coordenadas das dependências. Escolha versões de API que correspondam ao runtime alvo; a tabela abaixo é para Jakarta EE 10 (Tomcat 10.1+, Servlet 6.0):
| Runtime Alvo | Jakarta EE | Servlet | Persistence | Validation | Annotations |
|---|---|---|---|---|---|
| Tomcat 10.0 | 9 | 5.0 | 3.0 | 3.0 | 2.0 |
| Tomcat 10.1 | 10 | 6.0 | 3.1 | 3.0 | 2.1 |
| Tomcat 11 | 11 | 6.1 | 3.2 | 3.1 | 3.0 |
| Antigo | Novo |
|---|---|
javax.servlet:javax.servlet-api |
jakarta.servlet:jakarta.servlet-api:6.0.0 |
javax.persistence:javax.persistence-api |
jakarta.persistence:jakarta.persistence-api:3.1.0 |
javax.validation:validation-api |
jakarta.validation:jakarta.validation-api:3.0.2 |
javax.annotation:javax.annotation-api |
jakarta.annotation:jakarta.annotation-api:2.1.1 |
Passo 3 — Atualizar web.xml (se presente)
O version deve corresponder ao nível do Servlet alvo (5.0 para Tomcat 10.0, 6.0 para Tomcat 10.1, 6.1 para Tomcat 11); o exemplo abaixo é para Servlet 6.0:
<!-- Old namespace -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="4.0">
<!-- New namespace -->
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" version="6.0">
Passo 4 — Atualizar Arquivos Fonte Java
Substitua apenas as importações de javax. do Jakarta EE identificadas no Passo 1 por seus equivalentes jakarta. em arquivos .java; deixe os pacotes JDK (por exemplo, javax.sql, javax.crypto) inalterados. Verifique também referências não-Java: persistence.xml (propriedades javax.persistence.*), META-INF/services, beans.xml, propriedades/YAML, nomes de classes em string e reflection.
Passo 5 — Verificar
- Execute
mvn clean compileougradlew build— corrija quaisquer erros de compilação - Execute
mvn testougradlew test— certifique-se de que todos os testes passem - Procure por quaisquer importações
javax.*restantes (excluindo pacotes JDK)
Fontes upstream (leia antes de migrar)
Busque a página para a versão alvo; prefira-a sobre esta skill quando houver conflitos.
- Especificações Jakarta EE: https://jakarta.ee/specifications/
- Eclipse Transformer (transformação de binário/bytecode): https://github.com/eclipse-transformer/transformer
- OpenRewrite
org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta: https://docs.openrewrite.org/recipes/java/migrate/jakarta/javaxmigrationtojakarta - Migração Tomcat 9 para 10: https://tomcat.apache.org/migration-10.html
- Guias de migração Hibernate: https://hibernate.org/orm/documentation/migrate/
- Upgrade Spring Boot 3 (linha de base Jakarta EE 9+): https://docs.spring.io/spring-boot/upgrading.html
Saída
Forneça um resumo da migração listando todos os arquivos alterados, importações substituídas e quaisquer passos manuais necessários.
Perguntas frequentes
Quais pacotes 'javax.*' NÃO devem ser migrados?
Pacotes que fazem parte do JDK (Java Development Kit), como javax.sql.*, javax.naming.*, javax.crypto.*, javax.net.*, javax.security.auth.*, javax.swing.* e javax.xml.parsers.*, não devem ser migrados.
O que é o namespace 'javax' e 'jakarta'?
São nomes diferentes para conjuntos de bibliotecas Java. 'Jakarta' é a evolução mais recente, usada em versões mais novas de servidores e frameworks.
Preciso fazer alguma coisa antes de usar essa ferramenta?
Sim, é recomendado rodar o comando de build do seu projeto (como './mvnw verify' ou './gradlew build') antes e depois da migração para garantir que tudo está funcionando corretamente.
Detalhes
Descrição original do autor
Migrate Java code from javax.* to jakarta.* namespace. Use only when the user explicitly asks for a javax to jakarta namespace or framework migration (for example to Tomcat 10+/11 or Jakarta EE), or when java-upgrade or spring-boot-4-migration delegates it. Finding javax imports alone does not authorize a migration.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5206
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC