Lidar com dependências primárias em fluxos de trabalho do GitHub
Você pode aprimorar seu fluxo de trabalho do GitHub para lidar com dependências primárias ao usar o Amazon Q Developer para transformação de código.
O fluxo de trabalho padrão do Amazon Q Developer lida com projetos com dependências públicas do Maven. No entanto, os projetos corporativos geralmente incluem dependências primárias, incluindo arquivos Java ARchive (arquivos JAR) privados que não estão disponíveis em repositórios públicos. Esse fluxo de trabalho aprimorado estende a configuração padrão para oferecer suporte a dependências públicas e privadas.
Casos de uso para um fluxo de trabalho aprimorado
Use a configuração aprimorada do fluxo de trabalho do GitHub se seu projeto tiver:
-
Dependências JAR privadas ou internas
-
Bibliotecas de utilitários personalizadas não disponíveis no Maven Central
-
Falhas de compilação com erros
Could not resolve dependencies
Exemplo de configuração
O seguinte exemplo mostra uma configuração completa do fluxo de trabalho que lida com dependências primárias:
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
Principais componentes do fluxo de trabalho aprimorado
O fluxo de trabalho aprimorado do GitHub tem vários componentes principais:
-
Instalação de dependências primárias
O fluxo de trabalho inclui uma etapa crítica para instalar dependências privadas usando o comando Maven
install:install-file. Isso garante que suas dependências privadas estejam disponíveis no repositório local do Maven durante a transformação. -
Gerenciamento dinâmico de versões Java
O fluxo de trabalho alterna automaticamente entre o Java 8 e o Java 17 com base no estado da transformação, usando variáveis de ambiente para gerenciar as propriedades do compilador.
-
Configuração do Maven
O fluxo de trabalho aprimorado inclui uma configuração abrangente do Maven com:
-
Armazenamento em cache de dependências para melhorar o desempenho
-
Gerenciamento completo da propriedade do compilador
-
Preservação do layout do repositório
-
Gerenciamento de arquivos POM
-
-
Etapas de implementação
-
Identifique suas dependências privadas em
pom.xml -
Organize arquivos JAR na estrutura do seu repositório
-
Personalize o fluxo de trabalho com seus caminhos e coordenadas específicos
-
Teste o fluxo de trabalho em uma ramificação que corresponda ao padrão
Q-TRANSFORM-issue-*
-
-
Solução de problemas
O fluxo de trabalho inclui uma etapa de informações de depuração ativada em caso de falha, fornecendo:
-
Informações da ramificação
-
Detalhes da mensagem de confirmação
-
Configuração da versão Java
-
Conteúdo do repositório local do Maven
-
Informações sobre versões de Java e Maven
-