Gestión de las dependencias propias en los flujos de trabajo de GitHub - Amazon Q Developer

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Gestión de las dependencias propias en los flujos de trabajo de GitHub

Puede mejorar su flujo de trabajo de GitHub para gestionar las dependencias propias cuando utilice Amazon Q Developer para la transformación del código.

El flujo de trabajo estándar de Amazon Q Developer gestiona proyectos con dependencias públicas de Maven. Sin embargo, los proyectos empresariales suelen incluir dependencias propias, como Java ARchive (archivos JAR) privados que no están disponibles en los repositorios públicos. Este flujo de trabajo mejorado amplía la configuración estándar para admitir dependencias públicas y privadas.

Casos de uso de flujo de trabajo mejorado

Utilice la configuración de flujo de trabajo de GitHub mejorado si el proyecto tiene lo siguiente:

  • Dependencias JAR privadas o internas

  • Bibliotecas de utilidades personalizadas no disponibles en Maven Central

  • Fallos de compilación con errores Could not resolve dependencies

Configuración de ejemplo

En el siguiente ejemplo se muestra una configuración completa de flujo de trabajo que gestiona dependencias propias:

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

Componentes clave de un flujo de trabajo mejorado

El flujo de trabajo de GitHub mejorado tiene varios componentes clave:

  • Instalación de dependencias propias

    El flujo de trabajo incluye un paso fundamental para instalar dependencias privadas mediante el comando install:install-file de Maven. Esto garantiza que sus dependencias privadas estén disponibles en el repositorio local de Maven durante la transformación.

  • Gestión dinámica de versiones de Java

    El flujo de trabajo cambia automáticamente entre Java 8 y Java 17 en función del estado de transformación y utiliza variables de entorno para administrar las propiedades del compilador.

  • Configuración de Maven

    El flujo de trabajo mejorado incluye una configuración completa de Maven con:

    • Almacenamiento en caché de dependencias para mejorar el rendimiento

    • Administración completa de las propiedades del compilador

    • Conservación de la distribución de repositorios

    • Administración de archivos POM

  • Pasos para la implementación

    • Identificación de sus dependencias privadas en pom.xml

    • Organización de los archivos JAR en la estructura de su repositorio

    • Personalización del flujo de trabajo con sus rutas y coordenadas específicas

    • Prueba del flujo de trabajo en una ramificación que coincida con el patrón Q-TRANSFORM-issue-*

  • Solución de problemas

    El flujo de trabajo incluye un paso de información de depuración que se activa en caso de error y proporciona lo siguiente:

    • Información de la ramificación

    • Detalles de los mensajes de confirmación

    • Configuración de la versión de Java

    • Contenido del repositorio local de Maven

    • Información sobre las versiones de Java y Maven