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.1ochpdfbox:3.0.1importerar 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.xmleller ä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:
-
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.
-
Uppdatera filen
all/pom.xml.-
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> -
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>
-
-
Se till att adaptermodulen byggs före andra moduler som är beroende av den genom att ordna moduler korrekt i aggregatorns POM-fil.
-
Uppgradera
filevault-package-maven-plugintill version 1.1.5 eller senare om din nuvarande version inte stöder taggar som<version>inuti<embedded>. -
Kör
mvn clean installlokalt för att verifiera:- Omslutnings-JAR skapas med korrekta manifestposter.
- Artefakten visas under
/apps/custom-packages/application/install.
-
Distribuera det uppdaterade paketet via Cloud Manager pipeline och bekräfta att analysfel inte längre inträffar.