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.1 e pdfbox:3.0.1 importam 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.xml ou 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:

  1. 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.
  2. Atualize o arquivo all/pom.xml.

    1. 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>
      
    2. 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>
      
  3. 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.

  4. Atualize o filevault-package-maven-plugin para 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>.

  5. 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.
  6. Implante o pacote atualizado por meio do pipeline do Cloud Manager e confirme se os erros do analisador não ocorrem mais.

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