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-Befehls
install: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
-