本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
处理工作流程中的GitHub第一方依赖关系
使用 Amazon Q Developer 进行代码转换时,您可以增强GitHub工作流程以处理第一方依赖关系。
标准的 Amazon Q 开发者工作流程处理具有公共 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 版本信息
-