이 문서에서는 GitHub Copilot 앱 현대화에서 생성된 Java 프로젝트 업그레이드 계획을 사용자 지정하는 방법을 설명합니다.
업그레이드 세션을 시작하면 GitHub Copilot는 업그레이드에 필요한 단계 및 작업을 간략하게 설명하는 plan.md 파일을 생성합니다. 이 파일은 프로젝트의 요구 사항에 맞게 사용자 지정할 수 있는 업그레이드 프로세스의 청사진 역할을 합니다.
도구가 plan.md 파일을 생성하면 Visual Studio Code 편집기에서 자동으로 열립니다. 이 단계에서는 계획을 검토하고 사용자 지정하여 특정 업그레이드 목표에 부합하는지 확인할 수 있습니다.
plan.md 파일의 예제 구조
다음 섹션에서는 사용자 지정 지점을 설명하기 위해 샘플 plan.md 파일 구조에 대해 설명합니다.
키 매개 변수
다음 섹션에서는 수정할 수 있는 계획의 주요 매개 변수에 대해 설명합니다.
빌드 도구 명령 옵션
이 옵션은 프로젝트 정보 아래에 있으며 빌드 도구 실행을 위한 사용자 지정 명령줄 매개 변수를 정의할 수 있습니다. 유효한 옵션은 프로젝트에 따라 Maven CLI 또는 Gradle CLI 설명서를 참조하세요.
예제:
Maven의 경우:
Build tool command options: -Dmaven.javadoc.skip=true -s "/path/to/custom/settings.xml"Gradle의 경우:
Build tool command options: --info -Penv=production
비고
필요에 따라 경로를 실제 settings 파일 위치로 바꿉다. 표시된 이 경로는 예제일 뿐입니다.
테스트 유효성 검사
추가 작업 섹션 아래에 있는 플래그를 수정 run tests before and after the upgrade 하여 테스트 실행을 사용하거나 사용하지 않도록 설정할 수 있습니다.
-
true으로 설정하여 업그레이드 전후에 단위 테스트를 사용하세요. - 테스트 유효성 검사를 건너뛰도록
false설정합니다.
이 설정은 업그레이드 중에 도구가 단위 테스트를 실행하여 기능의 정확성을 확인하는지 여부를 제어합니다.
이러한 설정을 조정하여 프로젝트의 요구 사항에 더 잘 맞게 업그레이드 프로세스를 미세 조정할 수 있습니다.
업그레이드 목표 사용자 지정 및 지침 제공
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.