Модернизация приложений Java с помощью GitHub Copilot в интерфейсе командной строки Copilot

В этой статье дается обзор того, как разработчики Java могут модернизировать свои приложения с помощью плагина GitHub Copilot modernization в Copilot CLI. С помощью этого подхода разработчики могут модернизировать приложения везде, где они кодируют. Подключаемый модуль обеспечивает простой комплексный интерфейс — от обновления и миграции до развертывания— помогая командам ускорить преобразование, повысить производительность и уверенно переместить свои приложения на современные платформы.

Скриншот командной строки GitHub Copilot с запросом на модернизацию GitHub Copilot.

Замечание

интерфейс командной строки GitHub Copilot доступен в планах GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business и GitHub Copilot Enterprise. Если вы получаете Copilot из организации, политика интерфейса командной строки Copilot должна быть включена в параметрах организации.

С помощью интерфейса командной строки Copilot для модернизации можно выполнять задачи модернизации непосредственно из терминала без необходимости переключаться на интегрированную среду разработки. Этот подход поддерживает как интерактивные рабочие процессы с участием человека, так и пакетные рабочие процессы.

Что можно сделать

Capability Description
Обновление Java Обновление Java версии (8 → 11 → 17 → 21 → 25), перенос Spring Boot 2.x на 3.x, javax на jakarta и устаревшие API
Миграция Azure Оценка и перенос приложений Java в службы Azure (Служебная шина Azure, Azure SQL, Redis, Azure Key Vault, Application Insights, Управляемое удостоверение)
Исправление уязвимостей и CVE Сканирование и исправление уязвимостей CVE в зависимостях Maven, включая анализ зависимостей Log4j, Spring, Джексон и OWASP
Переработка архитектуры приложения Структурная переработка, такая как декомпозиция монолита на микросервисы, модернизация устаревшего пользовательского интерфейса и выделение модулей
Развертывание в Azure Развертывание обновленных или перенесенных приложений Java непосредственно в Azure

Предпосылки

  • GitHub Copilot CLI.
  • Подписка GitHub Copilot. Дополнительные сведения см. в планах Copilot.
  • Node.js версии 22 или более поздней.

Замечание

Учетная запись Azure требуется только для развертывания ресурсов в Azure и не нужна при использовании функции модернизации GitHub Copilot для изменения кода.

Установка подключаемого модуля

  1. Добавьте маркетплейс и установите плагин:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  2. Убедитесь, что плагин установлен, выведя список установленных плагинов:

    /plugin list
    

    Вы увидите github-copilot-modernization@github-copilot-modernization в списке.

Подсказка

Чтобы обновить плагин, когда станет доступна новая версия, выполните:

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

Запуск задачи модернизации

Вариант 1. Начало работы с агентом напрямую

Перейдите в папку проекта Java и запустите интерфейс командной строки Copilot с помощью агента модернизации:

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

Вариант 2. Выбор агента из Copilot CLI

Если вы уже находитесь в сеансе интерфейса командной строки Copilot, используйте команду /agent для переключения на агент модернизации:

/agent

Выберите modernize из списка.

Important

Перед выполнением любых запросов на модернизацию необходимо выбрать агент github-copilot-modernization:modernize. Если не выбирать агента, Copilot CLI использует агента по умолчанию, который не поддерживает полноценную многоагентную оркестрацию и специализированные возможности миграции, предоставляемые плагином.

Запустить запрос модернизации

После того как агент активен, опишите, что требуется на естественном языке:

modernize my application

Или будьте более конкретными:

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

Для автоматического выполнения используйте --allow-all флаг:

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

Как работает рабочий процесс

Плагин использует трехэтапный процесс, который запускается автоматически. Вам не нужно вызывать каждый этап вручную. Оркестратор обрабатывает маршрутизацию на основе запроса.

Этап 1. Оценка

  • Обнаруживает Java приложения в указанном пути.
  • Анализирует зависимости, платформы и Java версию.
  • Определяет возможности модернизации и риски.
  • Сохраняет результаты в .github/modernize/assessment/.

Этап 2. Планирование

  • Загружает результаты оценки.
  • Создает исполняемый план задач.
  • Сохраняет план в .github/modernize/<app>/plan.md и tasks.json.

Этап 3. Выполнение

  • Направляет задачи специализированным агентам-исполнителям в зависимости от типа задачи.
  • Каждый исполнитель запрашивает базу знаний для шаблонов миграции.
  • Отслеживает ход выполнения с автоматическим повтором при сбое.
  • Создает подробные фиксации для каждой задачи для проверки.

Оркестратор поддерживает несколько точек входа в зависимости от намерения:

Workflow Когда это активируется Что происходит
Широкое намерение "модернизация приложения" Полный конвейер: оценка → планирование → выполнение
Конкретная задача "Обновление до Java 21" Пропускает этап оценки и сразу переходит к планированию → выполнению
Выполнение существующего плана "Выполнение плана" Пропускает оценку и планирование, выполняет существующий план
Безголовый Выполнение без участия пользователя с --allow-all То же, что и общий интент, без пользовательских подсказок

Распространенные сценарии

Обновление приложения Java

Чтобы обновить приложение Java до новой версии среды выполнения или платформы, используйте следующий пример:

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

Затем задача модернизации выполняется, включая создание плана обновления, выполнение исправления кода, сборку проекта и проверку уязвимостей, как показано на следующем снимке экрана:

Screenshot GitHub Copilot CLI, в котором показаны задачи выполнения в сценариях обновления Java.

Проект успешно обновлен до JDK 21 и Spring Boot 3.2, а сводка по обновлению отображается.

Скриншот интерфейса командной строки GitHub Copilot, отображающий сводку обновления Java.

Перенос приложения Java на Azure

Чтобы перенести приложение Java в Azure, опишите сценарий миграции, как показано в следующем примере. Дополнительные сведения о предопределенных задачах миграции см. в разделе Предопределённые задачи для модернизации GitHub Copilot для разработчиков на Java.

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

С помощью этого запроса выполняется задача миграции и отображается ход выполнения в Copilot CLI.

Скриншот CLI GitHub Copilot, в котором отображаются выполняющиеся задачи в сценариях миграции Java.

При успешной миграции проекта в Microsoft Хранилище BLOB-объектов Azure отображается сводка по миграции.

Снимок экрана интерфейса командной строки GitHub Copilot со сводкой по Java миграции.

Развертывание приложения Java в Azure

После обновления или переноса приложения его можно развернуть непосредственно из интерфейса командной строки Copilot с помощью следующего примера:

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.

Используя этот запрос, вы запускаете задачу развертывания, а в Copilot CLI отображается ход выполнения.

Скриншот GitHub Copilot CLI, показывающий детали развертывания на Java.

При успешном развертывании проекта отображается сводка по развертыванию.

Скриншот GitHub Copilot CLI, который отображает сводку по развертыванию Java.

Troubleshooting

Подключаемый модуль не найден

# 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

Сбой оценки: не найдено Java приложения

  • Убедитесь, что в корневом каталоге проекта существует pom.xml или build.gradle.
  • Перед запуском Copilot CLI убедитесь, что вы находитесь в правильном каталоге.

Проблемы с сервером MCP

Плагин использует сервер MCP, определённый в его конфигурации. Если у вас возникли проблемы, попробуйте переустановить плагин, чтобы сбросить конфигурацию MCP.

Предоставьте отзыв

Если у вас есть отзывы о плагине GitHub Copilot modernization, создайте обращение в репозитории github-copilot-appmod.

Следующий шаг