Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье дается обзор того, как разработчики Java могут модернизировать свои приложения с помощью плагина GitHub Copilot modernization в Copilot CLI. С помощью этого подхода разработчики могут модернизировать приложения везде, где они кодируют. Подключаемый модуль обеспечивает простой комплексный интерфейс — от обновления и миграции до развертывания— помогая командам ускорить преобразование, повысить производительность и уверенно переместить свои приложения на современные платформы.
Замечание
интерфейс командной строки 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 для изменения кода.
Установка подключаемого модуля
Добавьте маркетплейс и установите плагин:
copilot plugin marketplace add microsoft/github-copilot-modernization copilot plugin install github-copilot-modernization@github-copilot-modernizationУбедитесь, что плагин установлен, выведя список установленных плагинов:
/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
Затем задача модернизации выполняется, включая создание плана обновления, выполнение исправления кода, сборку проекта и проверку уязвимостей, как показано на следующем снимке экрана:
Проект успешно обновлен до JDK 21 и Spring Boot 3.2, а сводка по обновлению отображается.
Перенос приложения Java на Azure
Чтобы перенести приложение Java в Azure, опишите сценарий миграции, как показано в следующем примере. Дополнительные сведения о предопределенных задачах миграции см. в разделе Предопределённые задачи для модернизации GitHub Copilot для разработчиков на Java.
copilot --agent=github-copilot-modernization:modernize
migrate this application from S3 to Azure Blob Storage
С помощью этого запроса выполняется задача миграции и отображается ход выполнения в Copilot CLI.
При успешной миграции проекта в Microsoft Хранилище BLOB-объектов Azure отображается сводка по миграции.
Развертывание приложения 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 отображается ход выполнения.
При успешном развертывании проекта отображается сводка по развертыванию.
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.