Umgang mit Abhängigkeiten von Erstanbietern in Workflows GitHub - Amazon Q Developer

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Umgang mit Abhängigkeiten von Erstanbietern in Workflows GitHub

Sie können Ihren GitHub Workflow verbessern, um Abhängigkeiten von Erstanbietern zu handhaben, wenn Sie Amazon Q Developer für die Codetransformation verwenden.

Der standardmäßige Amazon Q Developer-Workflow verarbeitet Projekte mit öffentlichen Maven-Abhängigkeiten. Unternehmensprojekte enthalten jedoch häufig Abhängigkeiten von Erstanbietern, einschließlich privater Java-Dateien ARchive (JAR-Dateien), die in öffentlichen Repositorys nicht verfügbar sind. Dieser erweiterte Workflow erweitert die Standardkonfiguration, sodass sowohl öffentliche als auch private Abhängigkeiten unterstützt werden.

Anwendungsfälle für einen verbesserten Workflow

Verwenden Sie die erweiterte GitHub Workflow-Konfiguration, wenn Ihr Projekt über Folgendes verfügt:

  • Private oder interne JAR-Abhängigkeiten

  • Benutzerdefinierte Dienstprogrammbibliotheken sind in Maven Central nicht verfügbar

  • Fehler bei der Erstellung mit Could not resolve dependencies Fehlern

Beispielkonfiguration

Das folgende Beispiel zeigt eine vollständige Workflow-Konfiguration, die Abhängigkeiten von Erstanbietern behandelt:

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

Die wichtigsten Komponenten des erweiterten Workflows

Der erweiterte GitHub Arbeitsablauf besteht aus mehreren Schlüsselkomponenten:

  • Installation von Abhängigkeiten durch Erstanbieter

    Der Arbeitsablauf beinhaltet einen wichtigen Schritt für die Installation von privaten Abhängigkeiten mithilfe des Maven-Befehlsinstall:install-file. Dadurch wird sichergestellt, dass Ihre privaten Abhängigkeiten während der Transformation im lokalen Maven-Repository verfügbar sind.

  • Dynamische Handhabung von Java-Versionen

    Der Workflow wechselt je nach Transformationsstatus automatisch zwischen Java 8 und Java 17 und verwendet Umgebungsvariablen zur Verwaltung der Compilereigenschaften.

  • Maven-Konfiguration

    Der erweiterte Workflow umfasst eine umfassende Maven-Konfiguration mit:

    • Zwischenspeicherung von Abhängigkeiten für verbesserte Leistung

    • Vollständige Verwaltung der Compiler-Eigenschaften

    • Beibehaltung des Repositor

    • Handhabung von POM-Dateien

  • Implementierungsschritte

    • Identifizieren Sie Ihre privaten Abhängigkeiten in pom.xml

    • Organisieren Sie JAR-Dateien in Ihrer Repository-Struktur

    • Passen Sie den Arbeitsablauf mit Ihren spezifischen Pfaden und Koordinaten an

    • Testen Sie den Workflow an einem Zweig, der dem Muster entspricht Q-TRANSFORM-issue-*

  • Fehlersuche

    Der Workflow umfasst einen Schritt mit Debug-Informationen, der bei einem Fehler aktiviert wird und Folgendes bereitstellt:

    • Informationen zur Filiale

    • Nachrichtendetails bestätigen

    • Konfiguration der Java-Version

    • Inhalt des lokalen Maven-Repositorys

    • Informationen zur Java- und Maven-Version