java-upgrade
Ajuda seu agente a atualizar projetos Java para versões mais recentes, adotando novas funcionalidades. É útil para modernizar o código e aproveitar recursos modernos.
O que ela faz
Ajuda a atualizar seu projeto Java para uma versão mais nova do Java (como do 11 para o 17). Ele te guia passo a passo para usar novas funcionalidades da linguagem e bibliotecas de forma segura.
Quando usar
- ✓Quando você quer atualizar seu código Java para uma versão mais recente.
- ✓Ao modernizar funcionalidades do seu projeto Java.
- ✓Para adotar novas características do Java, como 'records' ou 'sealed classes'.
Exemplo do que pedir para a IA
“Quero atualizar meu projeto Java de 11 para 17 e usar as novas funcionalidades.”
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 IA verifica qual versão do Java seu projeto usa e te guia pelas mudanças necessárias, uma versão por vez. Ela sugere atualizações no sistema de compilação e depois ajuda a incorporar novas funcionalidades da linguagem.
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 java-upgradeOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-upgrade/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.
Upgrade de Java
Ajude a atualizar um projeto Java passo a passo e a adotar novos recursos da linguagem com segurança.
Precisa de um upgrade mais poderoso e automatizado?
O plugin da Microsoft modernize-java ("GitHub Copilot modernization - Java Upgrade CLI Plugin", também listado nas plugins/external.json deste repositório) atualiza aplicações Java a partir da linha de comando. Ele pode:
- Analisar o projeto, avaliar dependências e gerar um plano de upgrade personalizável que você pode revisar e editar;
- Executar o plano para transformar o código automaticamente;
- Corrigir problemas de build e resolver erros de migração durante o upgrade, executando validações de testes;
- Validar a aplicação contra CVEs conhecidas após o upgrade;
- Gerar um resumo detalhado (alterações de arquivos, dependências atualizadas, resultados de testes, problemas restantes) adequado para PRs ou logs de CI.
Esta habilidade fornece orientação leve e passo a passo e funciona sem o plugin; o plugin é a opção mais poderosa para upgrades grandes ou de múltiplos passos. É um plugin separado da Microsoft, não faz parte das habilidades deste repositório. Para experimentá-lo (veja o README do plugin para o modelo recomendado):
npm install -g @github/copilot
copilot plugin marketplace add microsoft/modernize-java
copilot plugin install modernize-java@modernize-java
copilot --agent modernize-java:modernize-java
Fluxo de Trabalho
- Detecte as versões atual e de destino. Leia
pom.xml(maven.compiler.release,java.version, toolchains),build.gradle*(java.toolchain,sourceCompatibility) e arquivos de CI. Nunca assuma um destino: pergunte ao usuário se não estiver declarado. - Atualize uma LTS por vez (11 → 17 → 21 → 25). Compile e execute os testes após cada etapa.
- Carregue apenas o guia que você precisa da tabela abaixo. Não carregue todos.
- Atualize o build primeiro (compiler release, plugins, dependências que precisam de versões mais novas), depois adote recursos da linguagem incrementalmente em mudanças pequenas e revisáveis.
- Verifique:
./mvnw verifyou./gradlew build, e corrija avisos de depreciação e remoção antes de adotar novos recursos. - Automatize e verifique upstream. Use OpenRewrite quando disponível (por exemplo,
org.openrewrite.java.migrate.UpgradeToJava21) e sempre busque o guia oficial específico da versão antes de editar; revise o diff gerado.
Fontes Upstream (leia antes de atualizar)
Busque a página para a versão de destino; prefira-a a esta habilidade quando houver conflito. Lista completa com páginas de compatibilidade de build-tool e agente: references/upstream-sources.md.
- Página de release do OpenJDK: https://openjdk.org/projects/jdk/21/ (mude o número) e índice JEP https://openjdk.org/jeps/0
- Guia de migração da Oracle: https://docs.oracle.com/en/java/javase/21/migrate/getting-started.html
- Notas de release da Oracle: https://www.oracle.com/java/technologies/javase/21-relnote-issues.html
jdeprscan/jdeps: https://docs.oracle.com/en/java/javase/21/docs/specs/man/jdeprscan.html, https://docs.oracle.com/en/java/javase/21/docs/specs/man/jdeps.html- Matriz de compatibilidade do Gradle: https://docs.gradle.org/current/userguide/compatibility.html
- OpenRewrite: https://docs.openrewrite.org/recipes/java/migrate/upgradetojava21
Guias por versão
| Upgrade | Guia |
|---|---|
| Java 11 → 17 | references/java-11-to-17.md |
| Java 17 → 21 | references/java-17-to-21.md |
| Java 21 → 25 | references/java-21-to-25.md |
Regras
- Prefira refatorações que preservam o comportamento; não altere APIs públicas a menos que solicitado.
- Detecte os frameworks do projeto (Spring Boot, Quarkus, Jakarta EE) e verifique a versão mínima de Java suportada antes de aumentar o destino.
- Não adote recursos de preview a menos que o usuário opte por isso e o build os habilite explicitamente.
- Para mudanças de namespace de
javax.*parajakarta.*, use a habilidadejavax-to-jakarta-migrationse ela estiver instalada (gh skills install github/awesome-copilot javax-to-jakarta-migration); caso contrário, faça a migração inline: atualize imports, arquivos de serviçoMETA-INFe descritores XML, e aumente as dependências para equivalentes Jakarta EE 9+. - Se o plugin
modernize-javaestiver instalado e o usuário desejar um upgrade automatizado, delegue a ele e use esta habilidade para os guias por versão e as salvaguardas dejavaxajakarta.
Perguntas frequentes
Qual a diferença entre esta 'skill' e o plugin 'modernize-java'?
Esta 'skill' oferece um guia passo a passo mais simples. O plugin 'modernize-java' é uma ferramenta mais poderosa para atualizações automáticas e complexas, que pode ser instalada separadamente.
O que são 'records' e 'sealed classes'?
'Records' são uma forma simplificada de criar classes que armazenam dados. 'Sealed classes' permitem controlar quais outras classes podem herdar de uma classe específica.
Posso pular versões do Java?
Não é recomendado. A IA sugere atualizar uma versão principal de cada vez (por exemplo, de 11 para 17, depois de 17 para 21) para garantir que tudo funcione corretamente.
Detalhes
Descrição original do autor
Upgrade a Java project to a newer JDK (11 to 17, 17 to 21, 21 to 25) and adopt the new language and library features. Detects the current Java version from the build files, then loads only the matching per-version guide. Use when the user asks to upgrade Java, modernize Java code, or adopt records, sealed classes, pattern matching, virtual threads or other new Java features. For automated end-to-e
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5204
- 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