Gestione delle dipendenze proprietarie in GitHub
Puoi migliorare il tuo flusso di lavoro GitHub per gestire le dipendenze proprietarie 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 enterprise spesso includono dipendenze proprietarie, tra cui Java ARchive (file JAR) privati 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 flusso di lavoro GitHub se il tuo progetto presenta:
-
Dipendenze JAR private o interne
-
Librerie di utilità personalizzate non disponibili in Maven Central
-
Problemi di compilazione con errori
Could not resolve dependencies
Configurazione di esempio
L’esempio seguente mostra una configurazione del flusso di lavoro completa che gestisce le dipendenze proprietarie:
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 flusso di lavoro GitHub migliorato presenta diversi componenti chiave:
-
Installazione di dipendenze proprietarie
Il flusso di lavoro include una fase fondamentale per l’installazione di dipendenze private utilizzando il comando Maven
install:install-file. Ciò garantisce che le dipendenze private siano disponibili nel repository 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 file JAR
-
-
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 al modello
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 sul ramo
-
Conferma dei dettagli dei messaggi
-
Configurazione della versione di Java
-
Contenuti del repository Maven locale
-
Informazioni sulle versioni di Java e Maven
-