Pipeline-kompileringsfel på grund av PDFBox-biblioteket i AEM as a Cloud Service

Pipeline-kompilering i Adobe Experience Manager (AEM) as a Cloud Service misslyckas när PDFBox-biblioteket inte är korrekt inbäddat som ett OSGi-kompatibelt paket. Detta resulterar i olösta beroenden och analysfel under byggprocessen. För att åtgärda detta måste du lägga in PDFBox och dess beroenden i ett dedikerat OSGi-paket, uppdatera projektets POM-filer och säkerställa rätt byggordning och plugin-versioner.

Beskrivning description

Miljö

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

Problem/symtom

  • Varningar som anger att paket som pdfbox-io:3.0.1 och pdfbox:3.0.1 importerar paket utan att ange versionsintervall.
  • Fel som anger att nödvändiga paket från PDFBox inte exporteras på den nödvändiga OSGi-startnivån, vilket resulterar i olösta beroenden under körning:
    • 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)
  • Problemet inträffar endast i molnmiljön. Lokala byggen har kompilerats.
  • Det gick inte att bädda in PDFBox med filter.xml eller ändra POM-filer.

Upplösning resolution

Kontrollera att alla beroenden är korrekt inbäddade och konfigurerade för AEM OSGi-körningsmiljö för att lösa problemet:

  1. Skapa en separat modul för att packa PDFBox som ett OSGi-paket.

    • Inkludera alla nödvändiga beroenden, till exempel FontBox.
    • Använd Apache Felix Maven Bundle för att exportera paket explicit.
  2. Uppdatera filen all/pom.xml.

    1. Lägg till en inbäddad post för PDFBox-omslutningsmodulen:

      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. Deklarera ett beroende för adaptermodulen:

      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. Se till att adaptermodulen byggs före andra moduler som är beroende av den genom att ordna moduler korrekt i aggregatorns POM-fil.

  4. Uppgradera filevault-package-maven-plugin till version 1.1.5 eller senare om din nuvarande version inte stöder taggar som <version> inuti <embedded>.

  5. Kör mvn clean install lokalt för att verifiera:

    • Omslutnings-JAR skapas med korrekta manifestposter.
    • Artefakten visas under /apps/custom-packages/application/install.
  6. Distribuera det uppdaterade paketet via Cloud Manager pipeline och bekräfta att analysfel inte längre inträffar.

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