Fout bij compilatie pijplijn door PDFBox-bibliotheek in AEM as a Cloud Service

De compilatie van de pijpleiding in Adobe Experience Manager (AEM) as a Cloud Service ontbreekt wanneer de bibliotheek PDFBox niet behoorlijk als OSGi-Volgzame bundel wordt ingebed. Dit resulteert in onopgeloste gebiedsdelen en analysatorfouten tijdens het bouwstijlproces. Om dit te bevestigen, moet u PDFBox en zijn gebiedsdelen in een specifieke bundel verpakken OSGi, de POM- dossiers van uw project bijwerken, en de correcte bouwstijlorde en pluginversies verzekeren.

Beschrijving description

Omgeving

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

Probleem/symptomen

  • Waarschuwingen die aangeven dat pakketten zoals pdfbox-io:3.0.1 en pdfbox:3.0.1 moeten worden geïmporteerd zonder versiebereiken op te geven.
  • Fouten die verklaren dat de vereiste pakketten van PDFBox niet op het noodzakelijke OSGi beginniveau worden uitgevoerd, resulterend in onopgeloste gebiedsdelen tijdens runtime:
    • 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)
  • Het probleem doet zich alleen voor in de cloud-omgeving. Lokale builds kunnen correct worden gecompileerd.
  • Pogingen om PDFBox in te sluiten met filter.xml of POM-bestanden te wijzigen, zijn mislukt.

Resolutie resolution

Om deze kwestie op te lossen, zorg ervoor dat alle gebiedsdelen behoorlijk ingebed en voor runtime van AEM OSGi milieu worden gevormd:

  1. Creeer een afzonderlijke module om PDFBox als bundel OSGi te verpakken.

    • Alle vereiste afhankelijkheden opnemen, zoals FontBox.
    • Gebruik de insteekmodule Apache Felix Maven Bundle om pakketten expliciet te exporteren.
  2. Werk het all/pom.xml bestand bij.

    1. Voeg een ingesloten item toe voor de omsluitende module PDFBox:

      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. Declareer een gebiedsdeel voor de omslagmodule:

      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. Verzeker de omslagmodule bouwt vóór andere modules die van het door modules correct in het dossier van aggregator POM afhangen te opdracht geven.

  4. Voer een upgrade uit van filevault-package-maven-plugin naar versie 1.1.5 of hoger als uw huidige versie geen ondersteuning biedt voor tags als <version> inside <embedded> .

  5. Looppas mvn clean install plaatselijk om te verifiëren:

    • De omslag JAR wordt gecreeerd met correcte duidelijke ingangen.
    • Het artefact wordt weergegeven onder /apps/custom-packages/application/install .
  6. Implementeer het bijgewerkte pakket via de Cloud Manager-pijplijn en bevestig dat er geen fouten met de analysator meer optreden.

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