この記事の内容
- mavenでビルドした時に「ターゲット・オプション1.5は現在サポートされていません。」が出た
- mavenでビルドした時に「ソース・オプション5は現在サポートされていません。」が出た
- 私の環境に於いてこれらを解決した方法をメモ
Mavenとビルドで違うJavaのバージョンを使っていると発生
新しくgitからプロジェクトをロードしてEclipseにインポート後にmavenのビルドをしてみると
エラー
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project projectName: Compilation failure: Compilation failure:
[ERROR] ソース・オプション5は現在サポートされていません。6以降を使用してください。
[ERROR] ターゲット・オプション1.5は現在サポートされていません。1.6以降を使用してください。
pom.xmlには以下の様にjava1.8を指定しています。
<java-version>1.8</java-version>
そしてプロジェクトにはJava11が指定してあります。
このJavaバージョンの不一致を修正したところ問題が解消し、無事にビルドすることができました。
pom.xmlの方は修正してはいけないので、Eclipseのプロジェクトを編集します。
プロジェクトを右クリック → ビルドバス → ビルドパスの構成 → ライブラリー → JREシステム・ライブラリー → 編集ボタン → 代替JREにJava8を指定
これで再度mavenビルドしたらうまく行きました。
でも気になることが
これで直ったんですが、Java8でビルド成功後にJava11にもう一度戻してビルドしてみると成功するようになっています。
しかし、targetフォルダを削除して何もない状態からJava11で再度ビルドするとエラーが発生しました。
時間が無かったので詳細は追えていないのですが、mavenとJavaの依存関係の中で古いJava側でのみ生成される情報でも使っているのでしょう。と予想しています。
新しいJavaも同じ情報を生成するのでしょうが、そこのバージョンが違うと。
ただ、既存の情報があればそれをそのまま使うからJava8→Java11では動作する。
みたいな。どうでしょう?