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

В этой статье описывается настройка плана обновления проекта Java, созданного модернизацией GitHub Copilot.

При запуске сеанса обновления GitHub Copilot создает файл plan.md , который описывает шаги и задачи, необходимые для обновления. Этот файл служит схемой для процесса обновления, который можно настроить в соответствии с потребностями проекта.

После создания файла plan.md средство автоматически открывается в редакторе Visual Studio Code. На этом этапе можно просмотреть и настроить план, чтобы он соответствовал конкретным целям обновления.

Пример структуры файлов plan.md

В следующих разделах описывается пример структуры файлов plan.md для иллюстрации точек настройки.

Ключевые параметры

В следующих разделах описываются ключевые параметры плана, которые можно изменить.

Параметры команды инструмента сборки

В разделе "Доступные инструменты " агент обнаруживает средства сборки (Maven или Gradle) и пути JDK. Если вам нужны пользовательские параметры командной строки для выполнения сборки, добавьте их в раздел "Рекомендации ".

Примеры.

  • Для Maven: Use build options: -Dmaven.javadoc.skip=true -s "/path/to/custom/settings.xml"

  • Для Gradle: Use build options: --info -Penv=production

Замечание

Замените путь действительным settings местоположением файла по мере надобности. Показанный путь — это просто пример.

Screenshot плана обновления Java, где показаны доступные инструменты, рекомендации, параметры и цели обновления.

Настройка целей обновления и предоставление рекомендаций

В сценариях обновления Java часто требуется настройка за пределами стандартных обновлений JDK или платформы, например для применения изменений кода для конкретного проекта или обновления внутренних библиотек, которые средство не обнаруживает автоматически. Для поддержки этих потребностей модернизация GitHub Copilot теперь обеспечивает настройку в рамках плана обновления. Эта возможность позволяет предоставлять собственные рецепты, инструкции и входные данные для руководства по процессу обновления. Эту настройку можно выполнить, изменив разделы "Цели обновления " и " Рекомендации ".

Раздел "Цели обновления"

В разделе "Цели обновления " укажите дополнительные целевые показатели обновления вместе с целями в исходном запросе. Например, если основная задача заключается в обновлении проекта с Java 17 до Java 21, но для проекта также требуется обновление Log4j с 1.x до 2.x, перечислить это требование в качестве дополнительной цели, как показано в следующем примере запроса:

## Upgrade Goals
- Upgrade from Java 17 to 21
- Upgrade org.apache.logging.log4j:* to 2.24.3 
- Upgrade org.internal.lib to 2.0

Раздел "Рекомендации"

В разделе "Рекомендации " определяется, как Copilot должен выполнять обновление. В разделе "Цели обновления " основное внимание уделяется обновлению, в разделе "Рекомендации " описаны методология, соглашения, инструменты и правила, которые приводят к поведению Copilot во время преобразования кода.

Включите все инструкции, которые помогают управлять тем, как Copilot изменяет код, например следующие инструкции:

  • Руководство по использованию инструментов, рецептов или платформ для изменения кода.
  • Ограничения или запреты на определенные подходы к обновлению.
  • Требования к соглашениям или стилю кода.
  • Ссылки на внутренние файлы, документацию или сценарии, к которые агент может получить доступ.
  • Знания о домене, полезные для устранения ошибок или выполнения обновлений.
  • Требования к описанию того, как агент должен замечать или комментировать изменения кода.
  • Инструкции по очистке временных артефактов, созданных во время процесса обновления.

Содержимое этого раздела может быть обычным текстом, гиперссылками или ссылками на локальные файлы, пока Copilot может получить к ним доступ.

Примеры.

## Guidelines
- Do not use Log4j 1 to Log4J 2 API bridge to upgrade to Log4J 2. 
- Please follow the code conventions defined in /xxx/bbb/rules.txt.
- Please provide detailed comments explaining why each code change is necessary.
- "com.example:internal-lib:2.0.0" is compatible with Java 21.
- Use our internal MCP tool get_internal_lib_knowledge to retrieve compatibility information for internal libraries.
- After the upgrade, please remove any temporary files created during the process, such as code modification scripts.

См. также

Модернизация GitHub Copilot