GitHub 워크플로에서 자사 종속성 처리 - Amazon Q Developer

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

GitHub 워크플로에서 자사 종속성 처리

코드 변환에 Amazon Q Developer를 사용할 때 워크플로를 개선GitHub하여 자사 종속성을 처리할 수 있습니다.

표준 Amazon Q Developer 워크플로는 퍼블릭 Maven 종속성이 있는 프로젝트를 처리합니다. 그러나 엔터프라이즈 프로젝트에는 퍼블릭 리포지토리에서 사용할 수 없는 프라이빗 Java ARchive(JAR 파일)를 비롯한 자사 종속성이 포함되는 경우가 많습니다. 이 향상된 워크플로는 퍼블릭 종속성과 프라이빗 종속성을 모두 지원하도록 표준 구성을 확장합니다.

향상된 워크플로 사용 사례

프로젝트에 다음이 있는 경우 향상된 GitHub 워크플로 구성을 사용합니다.

  • 프라이빗 또는 내부 JAR 종속성

  • Maven Central에서 사용자 지정 유틸리티 라이브러리를 사용할 수 없음

  • Could not resolve dependencies 오류가 있는 빌드 실패

구성의 예제

다음 예제에서는 자사 종속성을 처리하는 전체 워크플로 구성을 보여줍니다.

name: Q Code Transformation on: push: branches: - 'Q-TRANSFORM-issue-*' env: MAVEN_CLI_OPTS: >- -Djava.version=${{ contains(github.event.head_commit.message, 'Code transformation completed') && '17' || '1.8' }} -Dmaven.compiler.source=${{ contains(github.event.head_commit.message, 'Code transformation completed') && '17' || '1.8' }} -Dmaven.compiler.target=${{ contains(github.event.head_commit.message, 'Code transformation completed') && '17' || '1.8' }} jobs: q-code-transformation: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: ${{ contains(github.event.head_commit.message, 'Code transformation completed') && '17' || '8' }} distribution: 'temurin' - name: Cache Maven dependencies uses: actions/cache@v4 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} restore-keys: ${{ runner.os }}-m2 - name: Install First-Party Dependencies run: | mvn install:install-file \ -Dfile=./your-library/built-library/1.0.0/your-library-1.0.0.jar \ -DgroupId=com.yourcompany.samples \ -DartifactId=your-library \ -Dversion=1.0.0 \ -Dpackaging=jar - name: Build and copy dependencies run: | mvn ${{ env.MAVEN_CLI_OPTS }} verify mvn ${{ env.MAVEN_CLI_OPTS }} dependency:copy-dependencies -DoutputDirectory=dependencies -Dmdep.useRepositoryLayout=true -Dmdep.copyPom=true -Dmdep.addParentPoms=true - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: q-code-transformation-dependencies path: dependencies - name: Debug information if: failure() run: | echo "Branch: ${{ github.ref_name }}" echo "Commit message: ${{ github.event.head_commit.message }}" echo "Java version logic result: ${{ contains(github.event.head_commit.message, 'Code transformation completed') && '17' || '8' }}" echo "Local Maven repository contents:" find ~/.m2/repository/com/yourcompany/samples -name "*.jar" 2>/dev/null || echo "No your-library found in local repo" java -version mvn -version

향상된 워크플로의 주요 구성 요소

향상된 GitHub 워크플로에는 다음과 같은 몇 가지 주요 구성 요소가 있습니다.

  • 자사 종속성 설치

    워크플로에는 Maven install:install-file 명령을 사용하여 프라이빗 종속성을 설치하기 위한 중요한 단계가 포함되어 있습니다. 이렇게 하면 변환 중에 로컬 Maven 리포지토리에서 프라이빗 종속성을 사용할 수 있습니다.

  • 동적 Java 버전 처리

    워크플로는 환경 변수를 사용하여 컴파일러 속성을 관리함으로써 변환 상태에 따라 Java 8과 Java 17 간에 자동으로 전환됩니다.

  • Maven 구성

    향상된 워크플로에는 다음을 사용한 포괄적인 Maven 구성이 포함되어 있습니다.

    • 성능 향상을 위한 종속성 캐싱

    • 컴파일러 속성 관리 완료

    • 리포지토리 레이아웃 보존

    • POM 파일 처리

  • 구현 단계

    • 에서 프라이빗 종속성 식별 pom.xml

    • 리포지토리 구조에서 JAR 파일 구성

    • 특정 경로 및 좌표로 워크플로 사용자 지정

    • 패턴과 일치하는 브랜치에서 워크플로 테스트 Q-TRANSFORM-issue-*

  • 문제 해결

    워크플로에는 실패 시 활성화되는 디버그 정보 단계가 포함되어 있으며 다음을 제공합니다.

    • 브랜치 정보

    • 메시지 세부 정보 커밋

    • Java 버전 구성

    • 로컬 Maven 리포지토리 콘텐츠

    • Java 및 Maven 버전 정보