AEM実稼動パイプラインでの Java ランタイムのバージョンの不一致を解決

この記事では、Java ランタイムのバージョンの不一致が原因でAdobe Experience Manager(AEM)のas a Cloud Serviceビルド段階と単体テスト段階が失敗した場合の解決策を説明します。 この解決策には、Maven バンドルプラグインのダウングレードと、一貫性のある環境設定の確保が含まれます。

説明 description

環境

Adobe Experience Manager(AEM)as a Cloud Service- Sites

問題/症状

メインブランチの実稼動パイプラインのビルドテストおよび単体テストの各段階で、エラーが発生します。 このエラーメッセージは、Maven ビルド時に使用される Java ランタイムのバージョンの不一致が原因で API の互換性がないことを示します。 maven-bundle-plugin バージョン 6.0.0 には Java 17 が必要ですが、AEM Cloud は Java 11 のみをサポートしているので、互換性がなくなります。

解決策 resolution

  1. Maven バンドルプラグインをダウングレードします。 <build><pluginManagement><plugins> の各セクションの pom.xml ファイルを変更し、maven-bundle-plugin の互換性のあるバージョンを指定してください。 Java 8 および 11:
    をサポートしているので、推奨バージョンは 5.1.9 以前です

    code language-none
    <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>
    
  2. 環境間で不一致が続く場合は、Adobeの Cloud Manager ドキュメントで提供されている適切な API を使用して、キャッシュされたアーティファクトを消去することを検討してください。 手順については、Adobe開発者向けドキュメントの ​ 概要 – Cloud Manager API を参照してください。

  3. コードベース設定(pom.xml)で、サポートされていないプラグインバージョンにデフォルト設定されている可能性のあるエントリがないか確認してください。 手順については、『AEM プロジェクト構造ユーザーガイド』の ​ リポジトリ構造パッケージ ​ を参照してください。

  4. 開発パイプラインと実稼動パイプラインの両方で、依存関係とプラグインに関する一貫した設定が使用されていることを確認します。

Java ランタイム要件の互換性の問題が解決したら、AEM as a Cloud Serviceの設定内のすべての環境でビルドテストと単体テストを正常に実行できるようになります。

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