Falha na compilação do pipeline devido à biblioteca PDFBox no AEM as a Cloud Service
A compilação de pipeline no Adobe Experience Manager (AEM) as a Cloud Service falha quando a biblioteca PDFBox não é incorporada corretamente como um pacote compatível com OSGi. Isso resulta em dependências não resolvidas e erros do analisador durante o processo de criação. Para corrigir isso, você precisa envolver o PDFBox e suas dependências em um pacote OSGi dedicado, atualizar os arquivos POM do projeto e garantir a ordem de compilação correta e as versões do plug-in.
Descrição description
Ambiente
Adobe Experience Manager (AEM) as a Cloud Service - Sites (ambiente de desenvolvimento)
Problema/Sintomas
- Avisos indicando que pacotes como
pdfbox-io:3.0.1epdfbox:3.0.1importam pacotes sem especificar intervalos de versão. - Erros informando que os pacotes necessários do PDFBox não são exportados no nível inicial OSGi necessário, resultando em dependências não resolvidas durante o tempo de execução:
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)
- O problema ocorre somente no ambiente de nuvem; as builds locais são compiladas com êxito.
- Falha ao tentar incorporar PDFBox usando
filter.xmlou modificando arquivos POM.
Resolução resolution
Para resolver esse problema, verifique se todas as dependências estão incorporadas e configuradas corretamente no ambiente de tempo de execução OSGi do AEM:
-
Crie um módulo separado para envolver PDFBox como um pacote OSGi.
- Inclua todas as dependências necessárias, como FontBox.
- Use o plug-in do pacote Apache Felix Maven para exportar pacotes explicitamente.
-
Atualize o arquivo
all/pom.xml.-
Adicione uma entrada incorporada para o módulo do invólucro 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> -
Declarar uma dependência para o módulo do invólucro:
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>
-
-
Certifique-se de que o módulo wrapper seja criado antes de outros módulos que dependam dele, ordenando os módulos corretamente no arquivo POM agregador.
-
Atualize o
filevault-package-maven-pluginpara a versão 1.1.5 ou posterior se a sua versão atual não der suporte a marcas como<version>dentro do<embedded>. -
Executar
mvn clean installlocalmente para verificar:- O JAR do invólucro é criado com entradas de manifesto corretas.
- O artefato aparece em
/apps/custom-packages/application/install.
-
Implante o pacote atualizado por meio do pipeline do Cloud Manager e confirme se os erros do analisador não ocorrem mais.