Pular para o conteúdo
Skillpedia
APIs e servidores (backend)40 mil · #5206

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

https://github.com/github/awesome-copilot/blob/main/skills/javax-to-jakarta-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/javax-to-jakarta-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/javax-to-jakarta-migration/SKILL.md -o SKILL.md
Conteú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-upgrade ou spring-boot-4-migration delegam 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 JDK
  • javax.naming.* — parte do JDK (JNDI)
  • javax.crypto.* — parte do JDK
  • javax.net.* — parte do JDK
  • javax.security.auth.* — parte do JDK
  • javax.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

  1. Execute mvn clean compile ou gradlew build — corrija quaisquer erros de compilação
  2. Execute mvn test ou gradlew test — certifique-se de que todos os testes passem
  3. 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.

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas