Error de compilación de canalización debido a la biblioteca PDFBox en AEM as a Cloud Service
La compilación de canalizaciones en Adobe Experience Manager (AEM) as a Cloud Service falla cuando la biblioteca PDFBox no está incrustada correctamente como paquete compatible con OSGi. Esto provoca dependencias sin resolver y errores del analizador durante el proceso de generación. Para solucionarlo, debe envolver PDFBox y sus dependencias en un paquete OSGi dedicado, actualizar los archivos POM del proyecto y garantizar el orden de compilación y las versiones de complementos correctos.
Descripción description
Entorno
Adobe Experience Manager (AEM) as a Cloud Service: Sites (entorno de desarrollo)
Problema/Síntomas
- Advertencias que indican que los paquetes como
pdfbox-io:3.0.1ypdfbox:3.0.1importan paquetes sin especificar intervalos de versiones. - Errores que indican que los paquetes necesarios de PDFBox no se exportan en el nivel de inicio OSGi necesario, lo que provoca dependencias no resueltas durante el tiempo de ejecución:
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)
- El problema solo se produce en el entorno de la nube, las compilaciones locales se compilan correctamente.
- Error al intentar incrustar PDFBox utilizando
filter.xmlo modificando archivos POM.
Resolución resolution
Para resolver este problema, asegúrese de que todas las dependencias estén correctamente incrustadas y configuradas para el entorno de tiempo de ejecución OSGi de AEM:
-
Cree un módulo independiente para envolver PDFBox como un paquete OSGi.
- Incluya todas las dependencias necesarias, como FontBox.
- Utilice el complemento Apache Felix Maven Bundle para exportar paquetes explícitamente.
-
Actualizar el archivo
all/pom.xml.-
Agregue una entrada incrustada para el módulo envoltorio 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> -
Declare una dependencia para el módulo envolvente:
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>
-
-
Asegúrese de que el módulo envolvente se compila antes que otros módulos que dependen de él ordenando los módulos correctamente en el archivo POM del agregador.
-
Actualice
filevault-package-maven-plugina la versión 1.1.5 o posterior si la versión actual no admite etiquetas como<version>dentro de<embedded>. -
Ejecutar
mvn clean installlocalmente para comprobar:- El JAR envolvente se crea con las entradas de manifiesto correctas.
- El artefacto aparece bajo
/apps/custom-packages/application/install.
-
Implemente el paquete actualizado a través de la canalización de Cloud Manager y confirme que ya no se producen errores del analizador.