AEM実稼動パイプラインでの Java ランタイムのバージョンの不一致を解決
この記事では、Java ランタイムのバージョンの不一致が原因でAdobe Experience Manager(AEM)のas a Cloud Serviceビルド段階と単体テスト段階が失敗した場合の解決策を説明します。 この解決策には、Maven バンドルプラグインのダウングレードと、一貫性のある環境設定の確保が含まれます。
説明
環境
Adobe Experience Manager(AEM)as a Cloud Service- Sites
問題/症状
メインブランチの実稼動パイプラインのビルドテストおよび単体テストの各段階で、エラーが発生します。 このエラーメッセージは、Maven ビルド時に使用される Java ランタイムのバージョンの不一致が原因で API の互換性がないことを示します。 maven-bundle-plugin
バージョン 6.0.0 には Java 17 が必要ですが、AEM Cloud は Java 11 のみをサポートしているので、互換性がなくなります。
解決策
-
Maven バンドルプラグインをダウングレードします。
<build>
、<pluginManagement>
、<plugins>
の各セクションのpom.xml
ファイルを変更し、maven-bundle-plugin
の互換性のあるバージョンを指定してください。 Java 8 および 11:
をサポートしているので、推奨バージョンは 5.1.9 以前です<build> <pluginManagement> <plugins> ... <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>5.1.2</version> <inherited>true</inherited> </plugin> ... </plugins> </pluginManagement> </build>
-
環境間で不一致が続く場合は、Adobeの Cloud Manager ドキュメントで提供されている適切な API を使用して、キャッシュされたアーティファクトを消去することを検討してください。 手順については、Adobe開発者向けドキュメントの 概要 – Cloud Manager API を参照してください。
-
コードベース設定(
pom.xml
)で、サポートされていないプラグインバージョンにデフォルト設定されている可能性のあるエントリがないか確認してください。 手順については、『AEM プロジェクト構造ユーザーガイド』の リポジトリ構造パッケージを参照してください。 -
開発パイプラインと実稼動パイプラインの両方で、依存関係とプラグインに関する一貫した設定が使用されていることを確認します。
Java ランタイム要件の互換性の問題が解決したら、AEM as a Cloud Serviceの設定内のすべての環境でビルドテストと単体テストを正常に実行できるようになります。