Pipeline-Kompilierung aufgrund von PDFBox-Bibliothek in AEM as a Cloud Service fehlgeschlagen

Die Pipeline-Kompilierung in Adobe Experience Manager (AEM) as a Cloud Service schlägt fehl, wenn die PDFBox-Bibliothek nicht ordnungsgemäß als OSGi-konformes Bundle eingebettet ist. Dies führt zu nicht aufgelösten Abhängigkeiten und Analyzer-Fehlern während des Build-Prozesses. Um dies zu beheben, müssen Sie PDFBox und seine Abhängigkeiten in ein dediziertes OSGi-Bundle einschließen, die POM-Dateien Ihres Projekts aktualisieren und sicherstellen, dass die Build-Reihenfolge und die Plug-in-Versionen korrekt sind.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) as a Cloud Service - Sites (Entwicklungsumgebung)

Problem/Symptome

  • Warnungen, die darauf hinweisen, dass Pakete wie pdfbox-io:3.0.1 und pdfbox:3.0.1 Pakete importieren, ohne die Versionsbereiche anzugeben.
  • Fehler, die angeben, dass erforderliche Pakete aus PDFBox nicht auf der erforderlichen OSGi-Startebene exportiert werden, was zu nicht aufgelösten Abhängigkeiten während der Laufzeit führt:
    • 2025-05-28 11:31:04.782 The analyser found the following errors for author and publish : 2025-05-28 11:31:04.783 [ api-regions-exportsimports] <custom>-<bundle>-project.core:0.0.1-SNAPSHOT: Bundle <custom>-<bundle>-project.core:0.0.1-SNAPSHOT is importing package(s) [ org.apache.pdfbox.pdmodel.common.filespecification, org.apache.pdfbox.multipdf, org.apache.pdfbox.pdmodel] in start level 20 but no bundle is exporting these for that start level. (com.<custom>.<code>:<custom>-<bundle>-project.all:0.0.1-SNAPSHOT)
  • Das Problem tritt nur in der Cloud-Umgebung auf. Lokale Builds wurden erfolgreich kompiliert.
  • Versuche, PDFBox mithilfe von filter.xml oder Ändern von POM-Dateien einzubetten, sind fehlgeschlagen.

Auflösung resolution

Um dieses Problem zu beheben, stellen Sie sicher, dass alle Abhängigkeiten ordnungsgemäß eingebettet und für die OSGi-Laufzeitumgebung von AEM konfiguriert sind:

  1. Erstellen Sie ein separates Modul, um PDFBox als OSGi-Bundle zu verpacken.

    • Schließen Sie alle erforderlichen Abhängigkeiten wie FontBox ein.
    • Verwenden Sie das Apache Felix Maven Bundle-Plug-in , um Pakete explizit zu exportieren.
  2. Aktualisieren Sie die all/pom.xml.

    1. Fügen Sie einen eingebetteten Eintrag für das PDFBox-Wrapper-Modul hinzu:

      code language-none
      <embedded>
          <groupId>com.<custom>.<code></groupId>
          <artifactId><custom>-<bundle>-project.pdfbox-wrapper</artifactId>
          <type>jar</type>
          <target>/apps/custom-packages/application/install</target>
      </embedded>
      
    2. Deklarieren Sie eine Abhängigkeit für das Wrapper-Modul:

      code language-none
      <dependency>
          <groupId>com.<custom>.<code></groupId>
          <artifactId><custom>-<bundle>-project.pdfbox-wrapper</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <type>jar</type>
      </dependency>
      
  3. Stellen Sie sicher, dass das Wrapper-Modul vor anderen Modulen erstellt wird, die von ihm abhängig sind, indem Sie Module in der Aggregator-POM-Datei korrekt sortieren.

  4. Aktualisieren Sie die filevault-package-maven-plugin auf Version 1.1.5 oder höher, wenn Ihre aktuelle Version Tags wie <version> in <embedded> nicht unterstützt.

  5. Führen Sie mvn clean installlokal aus, um Folgendes zu überprüfen:

    • Die Wrapper-JAR wird mit korrekten Manifesteinträgen erstellt.
    • Das Artefakt wird unter /apps/custom-packages/application/install angezeigt.
  6. Stellen Sie das aktualisierte Paket über die Cloud Manager-Pipeline bereit und bestätigen Sie, dass keine Analyzer-Fehler mehr auftreten.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f