Gestione delle dipendenze di prime parti nei flussi di lavoro GitHub - Amazon Q Developer

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione delle dipendenze di prime parti nei flussi di lavoro GitHub

Puoi migliorare il tuo GitHub flusso di lavoro per gestire le dipendenze di prime parti quando usi Amazon Q Developer per la trasformazione del codice.

Il flusso di lavoro standard di Amazon Q Developer gestisce progetti con dipendenze Maven pubbliche. Tuttavia, i progetti aziendali spesso includono dipendenze di prime parti, tra cui file Java privati ARchive (file JAR) non disponibili negli archivi pubblici. Questo flusso di lavoro migliorato estende la configurazione standard per supportare dipendenze pubbliche e private.

Casi d'uso per un flusso di lavoro migliorato

Utilizza la configurazione avanzata del GitHub flusso di lavoro se il tuo progetto presenta:

  • Dipendenze JAR private o interne

  • Librerie di utilità personalizzate non disponibili in Maven Central

  • Errori di compilazione con errori Could not resolve dependencies

Configurazione di esempio

L'esempio seguente mostra una configurazione completa del flusso di lavoro che gestisce le dipendenze di prime parti:

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

Componenti chiave di un flusso di lavoro migliorato

Il GitHub flusso di lavoro migliorato ha diversi componenti chiave:

  • Installazione di dipendenze di prime parti

    Il flusso di lavoro include un passaggio fondamentale per l'installazione di dipendenze private utilizzando il comando Maven. install:install-file Ciò garantisce che le dipendenze private siano disponibili nell'archivio Maven locale durante la trasformazione.

  • Gestione dinamica delle versioni di Java

    Il flusso di lavoro passa automaticamente da Java 8 a Java 17 in base allo stato di trasformazione, utilizzando variabili di ambiente per gestire le proprietà del compilatore.

  • Configurazione Maven

    Il flusso di lavoro migliorato include una configurazione Maven completa con:

    • Caching delle dipendenze per prestazioni migliorate

    • Gestione completa delle proprietà del compilatore

    • Conservazione del layout del repository

    • Gestione dei file POM

  • Passaggi dell'implementazione

    • Identifica le tue dipendenze private in pom.xml

    • Organizza i file JAR nella struttura del tuo repository

    • Personalizza il flusso di lavoro con percorsi e coordinate specifici

    • Testa il flusso di lavoro su un ramo che corrisponde allo schema Q-TRANSFORM-issue-*

  • Risoluzione dei problemi

    Il flusso di lavoro include una fase informativa di debug che si attiva in caso di errore, fornendo:

    • Informazioni sulla filiale

    • Conferma i dettagli del messaggio

    • Configurazione della versione Java

    • Contenuti del repository Maven locale

    • Informazioni sulle versioni di Java e Maven