問題

ビルドを Java 8 から Java 11 に切り替えようとすると、AEM Cloud Manager のビルドに失敗する。

解決策

問題には多くの原因が考えられます。  ただし、最も一般的な原因は次のドキュメントにあります。

  1. ここで説明されているように、Java 11 用に正しく設定された maven-toolchains-plugin を追加します。  例として、wknd サンプルプロジェクトコードを参照してください
  2. 次のエラーが表示される場合は、maven-scr-plugin の使用を削除し、すべての OSGi 注釈を OSGi R6 注釈に変換する必要があります。  手順については、こちらを参照してください。
    [main] [ERROR] Failed to execute goal org.apache.felix:maven-scr-plugin:1.26.4:scr (generate-scr-scrdescriptor) on project helloworld.core: /build_root/build/testsite/src/main/java/com/adobe/HelloWorldServiceImpl.java : Unable to load compiled class: com.adobe.HelloWorldServiceImpl: com/adobe/HelloWorldServiceImpl has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 -> [Help 1]
  3. Cloud Manager ビルドでは、Maven Enforcer プラグインにエラー「[main] [WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion」が発生します。  これは、Cloud Manager で maven コマンドを実行するのとコードをコンパイルするのに別々のバージョンの Java が使用されていることによるもので、既知の問題です。  現時点では、maven-enforcer-plugin 設定から requireJavaVersion を省略します。