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 のバージョン情報