{"meta":{"title":"Модернизация Java-приложений с помощью GitHub Copilot","intro":"GitHub Copilot может помочь модернизировать и мигрировать Java приложения, оценивая вашу кодовую базу, определяя пути обновления и автоматизируя задачи по восстановлению и контейнеризации.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/copilot","title":"GitHub Copilot"},{"href":"/ru/copilot/tutorials","title":"Учебники"},{"href":"/ru/copilot/tutorials/modernize-java-applications","title":"Модернизация приложений на Java"}],"documentType":"article"},"body":"# Модернизация Java-приложений с помощью GitHub Copilot\n\nGitHub Copilot может помочь модернизировать и мигрировать Java приложения, оценивая вашу кодовую базу, определяя пути обновления и автоматизируя задачи по восстановлению и контейнеризации.\n\n<!-- expires 2026-10-31 -->\n\n<!-- When this expires, check with the stakeholder for release #18998 on whether or not the content is still needed -->\n\nРасширение для модернизации приложений GitHub Copilot в Visual Studio Code автоматизирует Java обновления, выявляя устаревшие фреймворки, устаревшие API и блокировщики обновлений.\nCopilot облачный агент Вносит изменения в код, обновляет файлы сборки и решает проблемы с сборками и CVE за вас. <!-- markdownlint-disable-line GHD046 -->\n\nРекомендации и отчётность, полученные в рамках расширения, помогут вашим командам быстро внедрять новые технологии и сократить технический долг.\nCopilot Проведёт вас через улучшения с практическими шагами и резюме, ускоряя и обеспечивая безопасность миграций, при этом снижая ручные усилия.\n\nДля возможностей расширений, настройки и инструкций по интерфейсу см. [документацию по модернизации GitHub приложение Copilot](https://learn.microsoft.com/en-us/azure/developer/github-copilot-app-modernization/) в документации Майкрософт.\n\n## Рамки модернизации\n\nКогда вы начинаете сессию агента с помощью расширения [Java upgrade](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-upgrade), это расширение поможет вам модернизировать ваше Java приложение с помощью следующего фреймворка.\n\n* **Выполняйте оценочные задания**. Расширение может анализировать код, конфигурацию и зависимости, предоставляя оценку текущего состояния вашего приложения.\n* **Создайте настраиваемый план модернизации**. На основе оценки расширение может предложить путь модернизации, включая необходимые обновления фреймворка и библиотеки.\n* **Раннее выявление проблем**. Расширение выявляет зависимости, устаревшие библиотеки и языковые особенности, а также возможные проблемы миграции. Расширение предоставляет практические стратегии для устранения проблем.\n* **Персонализируйте свой план**. Отредактируйте план модернизации под конкретные потребности вашего приложения, например, включите стандарты и практики организации, исключите определённые компоненты или приоритизируете конкретные функции или шаблоны проектирования.\n* **Реализуйте свой план**. Расширение может помочь с внесением изменений в код, обновлением файлов сборок, рефакторингом устаревших API и устранением проблем сборки и синтаксиса. Расширение автоматически исправляет ошибки сборки и проводит проверку тестов после каждого шага для обеспечения стабильности и безошибочных изменений. <!-- markdownlint-disable-line GHD046 -->\n* **Пересмотрите свои изменения**. Расширение может подготовить подробный отчёт об обновлении, в котором будут перечислены внесенные изменения и перечислены все нерешённые проблемы и оставшиеся этапы модернизации.\n* **Генерируйте модульные тесты**. Расширение автоматически оценивает существующие тесты, генерирует новые тестовые файлы и добавляет их в рабочее пространство. Составляется отчёт, обобщающий результаты тестов до и после поколения.\n* **Контейнеризуйте своё приложение**. Расширение может автоматически генерировать Dockerfiles, создавать образы и проверять всё для вашего модернизированного приложения для работы в контейнерных сервисах, таких как Azure Kubernetes Service (AKS), Контейнеры приложений Azure (ACA) и AKS Automatic, что облегчает развертывание и масштабируемость.\n* **Готовьтесь к развертыванию**. Расширение поможет вам подготовить приложение к контейнеризации и развертыванию, генерируя артефакты развертывания, такие как скрипты и конфигурации.\n* **Автоматизировать развертывание в Azure**. Расширение поможет вам развернуть или подготовить модернизированное приложение для Azure, генерируя необходимые артефакты и ресурсы Azure, а также выполняя этапы выполнения.\n\nВы можете улучшить понимание кодовой базы приложения вашей командой и сэкономить время и усилия, помогая Copilot с выполнением сложных задач модернизации, таких как:\n\n* Реверс-инжиниринг и преобразование кода\n* Анализ уязвимостей и зависимостей, а также проверка и устранение поведения кода\n* Автоматизированная генерация активов, документации и отчётов по обновлению\n* Генерация и оценка тестов\n* Автоматизация развертывания\n\n## Обзор процесса модернизации\n\nВ этом примере мы рассмотрим основные шаги по модернизации Java приложения с помощью расширения модернизации приложения GitHub Copilot в Visual Studio Code.\n\nДля подробных требований и инструкций см. [Быстрый старт: обновить проект Java с помощью GitHub Copilot приложения modernization](https://learn.microsoft.com/en-us/java/upgrade/quickstart-upgrade) в документации Майкрософт.\n\n> \\[!NOTE]\n> Во время процесса модернизации вас часто Copilot облачный агент просят подтвердить перед выполнением конкретных действий.\n\n### 1. Откройте свой Java-проект\n\nИспользуйте VS Code для открытия папки проекта.\n\n#### Предлагаемые действия\n\n* Убедитесь, что ваш проект успешно реализован, прежде чем приступить к работе.\n* Если столкнулись с проблемами сборки, вы можете помочь Copilot их решить до начала модернизации.\n\n### 2. Начните модернизационное рабочее пространство\n\nЗапустите Копилот Чат и начните новую сессию в режиме агента. Выберите **GitHub Copilot модернизацию приложения — обновитесь до Java** из доступных инструментов.\n\n### 3. Проанализируйте свой проект на предмет возможностей обновления\n\nCopilot Отсканирую вашу кодовую базу. Анализ включает:\n\n* Обнаружение устаревших фреймворков (например, версии Spring Boot, Jakarta EE, Java SE).\n* Выявление устаревших API и устаревших паттернов. <!-- markdownlint-disable-line GHD046 -->\n* Предложения по возможностям улучшения.\n\nВы можете ознакомиться с результатами и структурированным планом обновления в редакторе, который покажет:\n\n* Текущие и рекомендуемые версии фреймворков и зависимостей.\n* Локации кода, требующие миграции или рефакторинга.\n* Блокирующие улучшения или несовместимые зависимости.\n\n#### Предлагаемые действия\n\n* Ознакомьтесь с планом модернизации перед тем, как приступить к обновлению.\n\n### 4. Примените Copilot рекомендации по улучшению\n\nИспользуйте Copilot их для применения или просмотра изменений в коде, обновления файлов сборок и рефакторинга API.\n\nЕсли обнаружены ошибки сборки, Copilot можно войти в цикл исправления и тестирования до чистой компилации проекта.\n\nCopilot облачный агент Автоматизированные изменения могут включать:\n\n* Обновляю `pom.xml` файлы `build.gradle` для новых версий зависимостей.\n* Генерация pull requests или прямое внесение изменений.\n* Рефакторинг кода для изменений API. Например, миграция с `javax.*` пространства имён.`jakarta.*`\n* Предлагать или применять преобразования кода для устранения проблемных изменений.\n\nCopilot Буду делать итерации и продолжать исправлять ошибки, пока проект не будет успешно собран и не останется проблем, требующих исправления. Возможно, мелкие проблемы, не требующие немедленных исправлений, останутся немедленными. Это не помешает завершению обновления.\n\n#### Предлагаемые действия\n\n* Проверьте все изменения кода в вашем редакторе дифференциальных редакторов перед принятием.\n* Используйте Copilot для подробного объяснения и документирования изменений в коде.\n* Когда расширение просит вас об этом, примите опции проверки изменённых зависимостей известных CVE и проверки поведения кода на согласованность.\n* Проанализируйте оставшиеся вопросы и оцените их значимость.\n\n### 5. Просмотрите отчёт об обновлении и предлагаемые дальнейшие шаги\n\nПосле завершения процесса обновления Copilot будет сформирован сводный отчет об обновлении, включающий:\n\n* Project info.\n* Изменены строки кода.\n* Обновлены зависимости.\n* Суммированные изменения кода.\n* Исправлены проблемы с безопасностью и несоответствием кода CVE, если таковые имеются.\n* Не устранены незначительные проблемы CVE.\n\n#### Предлагаемые действия\n\n* Ознакомьтесь с отчётом, чтобы понять внесенные изменения.\n* Следуйте любым предложенным следующим шагам для завершения модернизации.\n\n### Завершение модернизации\n\nДальнейшая работа для поддержки вашей модернизации может включать:\n\n* **Тщательно проверяю** первоначальную модернизацию и изменения кода. Убедитесь, что стандарты кодирования и лучшие практики вашей компании соответствуют.\n* **Внимательно изучаю** модифицированный код. Например, проверьте, соответствует ли сгенерированный код назначению и архитектуре вашего проекта. Для дополнительных предложений см. [АВТОТИТР](/ru/copilot/tutorials/review-ai-generated-code).\n* **Исправление ошибок**. Проверяйте конкретный контент на наличие тонких ошибок и используйте собственные инструменты отладки и линтинга для оценки нового контента.\n* **Написание тестов** и выявление пробелов в тестировании для обновлённого проекта.\n* **Очистка** проекта путем удаления всех файлов, которые больше не нужны.\n* **Рефакторинг** кода на новом языке. Процесс модернизации мог привести к созданию проекта, архитектура которого была основана на вашей первоначальной архитектуре, но это уже не является идеальным или оптимальным решением для ваших нужд. Теперь, возможно, захочется рефакторить код, чтобы максимально использовать возможности языка и используемый фреймворк.\n* **Обновляю документацию**. Информация о вашем проекте и файлы для вклада могут быть устаревшими и потребовать переписывания.\n* **Контейнеризация**. Обновите код приложения, создайте контейнеризационные файлы, такие как Dockerfiles, и создайте образ для проверки валидности. При необходимости Copilot можете выполнить эти задачи по контейнеризации, а также составить комплексный план с дальнейшими шагами.\n* **Deploying** модернизированное приложение для ваших целевых сред, включая облачные платформы, такие как Microsoft Azure.\n\n<!-- end expires 2026-10-31 -->"}