Java

mavenで「ターゲット・オプション1.5は現在サポートされていません。」に対処する

この記事の内容

  • 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が指定してあります。

mavenで「ターゲット・オプション1.5は現在サポートされていません。」に対処する

このJavaバージョンの不一致を修正したところ問題が解消し、無事にビルドすることができました。

pom.xmlの方は修正してはいけないので、Eclipseのプロジェクトを編集します。

プロジェクトを右クリック → ビルドバス → ビルドパスの構成 → ライブラリー → JREシステム・ライブラリー → 編集ボタン → 代替JREにJava8を指定

これで再度mavenビルドしたらうまく行きました。

でも気になることが

これで直ったんですが、Java8でビルド成功後にJava11にもう一度戻してビルドしてみると成功するようになっています。

しかし、targetフォルダを削除して何もない状態からJava11で再度ビルドするとエラーが発生しました。

時間が無かったので詳細は追えていないのですが、mavenとJavaの依存関係の中で古いJava側でのみ生成される情報でも使っているのでしょう。と予想しています。
新しいJavaも同じ情報を生成するのでしょうが、そこのバージョンが違うと。

ただ、既存の情報があればそれをそのまま使うからJava8→Java11では動作する。

みたいな。どうでしょう?

###############お知らせ################
ブログランキングのITカテゴリに参加してみました。
この記事が役に立ったなどお力になれたら、 このバナーを押していただけると嬉しいです。

#####################################

-Java