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
-