事象
渡された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.compiler.source>11</maven.compiler.source> ← 8にする <maven.compiler.target>11</maven.compiler.target> ← 8にする
補足
source:ソースがどのJDKのバージョンの文法として書かれてるかを指定
target:指定されたリリースの仮想マシンをターゲットにしたクラス・ファイルを生成
クラス・ファイルは、指定されたターゲット以降のリリースでは動作するが、それより前のリリースのVMでは動作しない
release:上記を纏めたオプション、JDK9以降はこちらのオプションを推奨
参考リンク
- JDK11のjavac
- JDK8のjavac
javac
寺田さんがsource, target, releaseオプションに関して解説してくれている記事
2019年のJava | gihyo.jp