Gestion des dépendances internes dans les flux de travail GitHub - Amazon Q Developer

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des dépendances internes dans les flux de travail GitHub

Vous pouvez améliorer votre GitHub flux de travail pour gérer les dépendances internes lorsque vous utilisez Amazon Q Developer pour la transformation du code.

Le flux de travail standard d'Amazon Q Developer gère les projets comportant des dépendances Maven publiques. Cependant, les projets d'entreprise incluent souvent des dépendances internes, notamment des fichiers Java privés ARchive (fichiers JAR) non disponibles dans les référentiels publics. Ce flux de travail amélioré étend la configuration standard pour prendre en charge les dépendances publiques et privées.

Cas d'utilisation pour un flux de travail amélioré

Utilisez la configuration GitHub de flux de travail améliorée si votre projet comporte :

  • Dépendances JAR privées ou internes

  • Les bibliothèques d'utilitaires personnalisées ne sont pas disponibles dans Maven Central

  • Créez des échecs avec des Could not resolve dependencies erreurs

Exemple de configuration

L'exemple suivant montre une configuration de flux de travail complète qui gère les dépendances internes :

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

Principaux éléments d'un flux de travail amélioré

Le GitHub flux de travail amélioré comporte plusieurs éléments clés :

  • Installation de dépendances par une tierce partie

    Le flux de travail inclut une étape critique pour installer des dépendances privées à l'aide de la install:install-file commande Maven. Cela garantit que vos dépendances privées sont disponibles dans le référentiel Maven local pendant la transformation.

  • Gestion dynamique des versions de Java

    Le flux de travail bascule automatiquement entre Java 8 et Java 17 en fonction de l'état de transformation, en utilisant des variables d'environnement pour gérer les propriétés du compilateur.

  • Configuration de Maven

    Le flux de travail amélioré inclut une configuration complète de Maven avec :

    • Mise en cache des dépendances pour de meilleures performances

    • Gestion complète des propriétés du compilateur

    • Préservation de la disposition du référentiel

    • Gestion des fichiers POM

  • Étapes d’implémentation

    • Identifiez vos dépendances privées dans pom.xml

    • Organisez les fichiers JAR dans la structure de votre référentiel

    • Personnalisez le flux de travail avec vos chemins et coordonnées spécifiques

    • Tester le flux de travail sur une branche correspondant au modèle Q-TRANSFORM-issue-*

  • Dépannage

    Le flux de travail inclut une étape d'information de débogage qui s'active en cas d'échec, fournissant :

    • Informations sur la succursale

    • Détails du message de validation

    • Configuration de la version Java

    • Contenu du référentiel Maven local

    • Informations sur les versions de Java et Maven