Modernización de aplicaciones de Java mediante la modernización de GitHub Copilot en la CLI de Copilot

En este artículo se proporciona información general sobre cómo los desarrolladores de Java pueden modernizar sus aplicaciones mediante el complemento GitHub Copilot modernización en Copilot CLI. Mediante este enfoque, los desarrolladores pueden modernizar las aplicaciones dondequiera que codifiquen. El complemento ofrece una experiencia sin problemas, de un extremo a otro, desde la actualización y la migración a la implementación, lo que ayuda a los equipos a acelerar la transformación, aumentar la productividad y mover con confianza sus aplicaciones a plataformas modernas.

Captura de pantalla de la CLI de GitHub Copilot que muestra un aviso de modernización de GitHub Copilot.

Nota:

GitHub Copilot CLI está disponible con los planes GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business y GitHub Copilot Enterprise. Si recibe Copilot de una organización, la directiva de la Interfaz de Línea de Comandos (CLI) de Copilot debe estar habilitada en las configuraciones de la organización.

Mediante el uso de Copilot CLI para la modernización, puede ejecutar tareas de modernización directamente desde el terminal, sin necesidad de cambiar a un IDE. Este enfoque admite flujos de trabajo interactivos( humanos en el bucle) y por lotes.

Qué puede hacer

Capacidad Descripción
actualización de Java Actualizar la versión de Java (8 → 11 → 17 → 21 → 25), migrar Spring Boot 2.x a 3.x, de javax a jakarta y las API obsoletas
Migración a Azure Evaluar y migrar aplicaciones de Java a servicios Azure (Azure Service Bus, Azure SQL, Redis, Azure Key Vault, Application Insights, Managed Identity)
CVE y corrección de vulnerabilidades Examen y corrección de vulnerabilidades de CVE en dependencias de Maven, incluidos el análisis de dependencias de Log4j, Spring, Jackson y OWASP
Rearquitectura de aplicaciones Reescrituras estructurales, como la descomposición de un monolito en microservicios, la modernización de interfaces de usuario heredadas y la extracción de módulos
Implementación en Azure Implementar aplicaciones de Java actualizadas o migradas directamente en Azure

Prerrequisitos

Nota:

Una cuenta de Azure solo se requiere para implementar recursos en Azure, y no se necesita para usar la modernización con GitHub Copilot para realizar cambios en el código.

Instalación del complemento

  1. Agregue Marketplace e instale el complemento:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Compruebe que el complemento está instalado enumerando los complementos instalados:

    /plugin list
    

    Debería ver github-copilot-modernization@github-copilot-modernization en la lista.

Sugerencia

Para actualizar el complemento cuando haya disponible una nueva versión, ejecute:

copilot plugin update github-copilot-modernization@github-copilot-modernization

Iniciar una tarea de modernización

Opción 1: Empezar directamente con el agente

Vaya a la carpeta del proyecto de Java e inicie Copilot CLI con el agente de modernización:

cd /path/to/your/java-app
copilot --agent=github-copilot-modernization:modernize

Opción 2: Selección del agente desde dentro de la CLI de Copilot

Si ya está en una sesión de la CLI de Copilot, use el comando /agent para cambiar al agente de modernización:

/agent

Seleccione modernize en la lista.

Importante

Debe seleccionar el github-copilot-modernization:modernize agente antes de ejecutar las solicitudes de modernización. Sin seleccionar el agente, Copilot CLI usa el agente predeterminado, que no puede usar la orquestación multiagente completa y las funcionalidades de migración especializadas proporcionadas por el complemento.

Ejecutar un prompt de modernización

Una vez que el agente esté activo, describa lo que desea en lenguaje natural:

modernize my application

O bien, ser más específico:

upgrade this app to Java 21 and Spring Boot 3.2
migrate this Spring Boot app to Azure
fix CVE vulnerabilities in my project

Para ejecutar de forma desatendida, use el indicador --allow-all:

copilot --agent=github-copilot-modernization:modernize --allow-all

Funcionamiento del flujo de trabajo

El complemento usa un flujo de trabajo de tres fases que se ejecuta automáticamente. No es necesario invocar manualmente cada fase: el orquestador controla el enrutamiento en función de la solicitud.

Fase 1: Evaluación

  • Detecta aplicaciones Java en la ruta de acceso especificada.
  • Analiza las dependencias, los marcos y la versión de Java.
  • Identifica las oportunidades y los riesgos de modernización.
  • Guarda los resultados en .github/modernize/assessment/.

Fase 2: Planificación

  • Carga los resultados de la evaluación.
  • Genera un plan de tareas ejecutable.
  • Guarda el plan en .github/modernize/<app>/plan.md y tasks.json.

Fase 3: Ejecución

  • Enruta las tareas a agentes ejecutores especializados en función del tipo de tarea.
  • Cada ejecutor consulta una base de conocimiento para patrones de migración.
  • Supervisa el progreso con reintento automático en caso de error.
  • Crea confirmaciones detalladas por tarea para su revisión.

El orquestador admite varios puntos de entrada en función de la intención:

Flujo de trabajo Cuando se activa ¿Qué ocurre?
Intención amplia "modernizar mi aplicación" Evaluación completa → plan → ejecución de canalización
Tarea específica "actualizar a Java 21" Omite la evaluación, va directamente al plan → ejecutar
Ejecución del plan existente "ejecutar el plan" Omite la evaluación y la planificación, ejecuta un plan existente.
Headless Ejecución desatendida con --allow-all La misma intención general sin indicaciones del usuario

Escenarios comunes

Actualización de la aplicación de Java

Para actualizar la aplicación de Java a una versión más reciente del entorno de ejecución o del marco de trabajo, use el ejemplo siguiente:

copilot --agent=github-copilot-modernization:modernize
upgrade this project to JDK 21 and Spring Boot 3.2

A continuación, se ejecuta la tarea de modernización, incluida la generación del plan de actualización, la realización de la corrección de código, la compilación del proyecto y la comprobación de vulnerabilidades, como se muestra en la captura de pantalla siguiente:

Captura de pantalla de GitHub Copilot CLI que muestra la ejecución de tareas en escenarios de actualización de Java.

El proyecto se ha actualizado correctamente a JDK 21 y Spring Boot 3.2 y se muestra un resumen de actualización.

Captura de pantalla del CLI de GitHub Copilot que muestra el resumen de actualización de Java.

Migración de la aplicación de Java a Azure

Para migrar la aplicación de Java a Azure, describa el escenario de migración, como se muestra en el ejemplo siguiente. Para obtener más información sobre las tareas de migración predefinidas, consulte Tareas predefinidas para la modernización de GitHub Copilot para desarrolladores de Java.

copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage

Con este mensaje, la tarea de migración se ejecuta y muestra el progreso en Copilot CLI.

Captura de pantalla de GitHub Copilot CLI que muestra la ejecución de tareas en escenarios de migración de Java.

Cuando el proyecto se migra correctamente a Microsoft Azure Blob Storage, se muestra un resumen de la migración.

Captura de pantalla de GitHub Copilot CLI que muestra el resumen de migración de Java.

Implementación de la aplicación de Java en Azure

Después de actualizar o migrar la aplicación, puede implementarla directamente desde Copilot CLI mediante el ejemplo siguiente:

copilot --agent=github-copilot-modernization:modernize
Scan my project and help me plan how to containerize my application using the #appmod-get-containerization-plan tool. Execute the plan. The end goal is to have Dockerfiles that are able to be built.

Al usar este indicador, la tarea de implementación se ejecuta y su progreso se muestra en Copilot CLI.

Captura de pantalla de GitHub Copilot CLI que muestra los detalles de implementación de Java.

Cuando el proyecto se implementa correctamente, se muestra un resumen de implementación.

Captura de pantalla de GitHub Copilot CLI que muestra el resumen de implementación de Java.

Solución de problemas

No se encontró el complemento

# Verify marketplace is added
copilot plugin marketplace list

# Re-add the marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

Error en la evaluación: no se encontró ninguna aplicación de Java

  • Compruebe pom.xml o build.gradle exista en la raíz del proyecto.
  • Asegúrese de que está en el directorio correcto antes de iniciar Copilot CLI.

Problemas del servidor MCP

El complemento usa el servidor MCP definido en su configuración. Si tiene problemas, intente reinstalar el complemento para restablecer la configuración de MCP.

Proporcionar comentarios

Si tiene algún comentario sobre el complemento de modernización de GitHub Copilot, abra una incidencia en el repositorio github-copilot-appmod.

Paso siguiente