AEM as a Cloud Serviceの PDFBox ライブラリが原因でパイプラインコンパイルに失敗しました
PDFBox ライブラリが OSGi 準拠のバンドルとして適切に埋め込まれていない場合、Adobe Experience Manager(AEM)as a Cloud Serviceでのパイプラインのコンパイルが失敗します。 その結果、ビルドプロセス中に依存関係が未解決になり、アナライザーエラーが発生します。 これを修正するには、PDFBox とその依存関係を専用の OSGi バンドルにラップし、プロジェクトの POM ファイルを更新して、ビルド順序とプラグインのバージョンが正しいことを確認する必要があります。
説明 description
環境
Adobe Experience Manager(AEM)as a Cloud Service - Sites (開発環境)
問題/症状
pdfbox-io:3.0.1やpdfbox:3.0.1などのバンドルがバージョン範囲を指定せずにパッケージをインポートすることを示す警告。- PDFBox の必須パッケージが必要な OSGi 開始レベルで書き出されず、実行時に未解決の依存関係が発生するというエラーが表示されます。
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)
- この問題はクラウド環境でのみ発生します。ローカルビルドは正常にコンパイルされます。
filter.xmlを使用した PDFBox の埋め込みまたは POM ファイルの変更に失敗しました。
解決策 resolution
この問題を解決するには、すべての依存関係がAEMの OSGi ランタイム環境用に適切に埋め込まれ、設定されていることを確認します。
-
PDFBox を OSGi バンドルとしてラップするために、別のモジュールを作成します。
- FontBox など、必要なすべての依存関係を含めます。
- パッケージを明示的に書き出すには、Apache Felix Maven バンドルプラグインを使用します。
-
all/pom.xmlファイルを更新します。-
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> -
ラッパーモジュールの依存関係を宣言します。
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>
-
-
集約 POM ファイルでモジュールを正しく並べ替えて、ラッパーモジュールが、それに依存する他のモジュールより前にビルドされることを確認します。
-
現在のバージョンが
filevault-package-maven-plugin内の<version>などのタグをサポートしていない場合は、<embedded>をバージョン 1.1.5 以降にアップグレードします。 -
mvn clean installローカルで実行して確認:- 正しいマニフェストエントリでラッパー JAR が作成される。
- アーティファクトは
/apps/custom-packages/application/installの下に表示されます。
-
Cloud Manager パイプラインを使用して更新されたパッケージをデプロイし、アナライザーエラーが発生しなくなったことを確認します。