mvnを実行すると"11は無効なターゲット・リリースです"と怒られる

事象

渡されたpom.xmlコンパイルを行うと、以下の様なエラーメッセージが発生する。

(中略)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.744 s
[INFO] Finished at: 2021-05-01T10:53:10+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project azure-javaweb-app: Fatal error compiling: 11は無効なターゲット・リリースです -> [Help 1]

原因

mavenコンパイルおよびターゲットの定義がJavaSE11を指していたため。
今回はCorreto8を用いて作業したかったため、コンパイルに失敗していた。

対応方法

以下の様に定義変更を行えばよい。

(中略)
    <maven.compiler.source>11</maven.compiler.source>  ← 8にする
    <maven.compiler.target>11</maven.compiler.target> ← 8にする

補足

source:ソースがどのJDKのバージョンの文法として書かれてるかを指定
target:指定されたリリースの仮想マシンをターゲットにしたクラス・ファイルを生成
    クラス・ファイルは、指定されたターゲット以降のリリースでは動作するが、それより前のリリースのVMでは動作しない
release:上記を纏めたオプション、JDK9以降はこちらのオプションを推奨

参考リンク

  • JDK11のjavac

javac

  • JDK8のjavac

javac
寺田さんがsource, target, releaseオプションに関して解説してくれている記事
2019年のJava | gihyo.jp