web-dev-qa-db-ja.com

複数のJavaバージョン)について、Eclipseで「厳密に互換性のあるJREがワークスペースにインストールされていません」という警告を回避します。

この警告についてはすでに多くの質問があることを私は知っていますが、私の質問は少し異なります。 pom.xmlでこの構成を使用して修正できることを理解しています

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

これにより警告が削除されますが、EclipseにJava 7がインストールされ、構成されている場合に限ります。たとえば、Java 8のみの場合、まだ表示されます。上記の構成のバージョンを1.8に変更しない限り、警告:

ビルドパスは、実行環境JavaSE-1.7を指定します。この環境と厳密に互換性のあるJREはワークスペースにインストールされていません。

私のプロジェクトはJava 7、8、9、10と互換性があります。私が達成したいのは、これらのバージョンのJava is pom.xmlのバージョンを変更せずにインストールして現在インストールされているJavaバージョンと毎回一致させます。EclipseにJava 7以上)いいね。

プロジェクトはまだコンパイルされ、警告付きで正常に動作します。プロジェクトに問題があるとマークするため、気が散るだけです。 Eclipse設定でこのタイプの警告を非表示にできることは知っていますが、pom.xmlの一部の構成を使用するだけで警告を取り除く方法はありますか?

10
John29

Eclipseは、値<target>1.7</target>を使用して、Maven統合の一部としてビルドパスに含める実行環境を決定します。

実行環境はJREにマップされますEclipseにインストールされます(つまり、Preferences > Java > Installed JREsで参照されます)。

マッピング自体はPreferences > Java > Installed JREs > Runtime Environmentsで構成されます。 Eclipseは、実行環境(JavaSE-1.7など)をインストール済みのJRE(jdk1.7.0_80など)に自動的に照合します。プロジェクトで指定された実行環境に完全に一致するものがない場合は、表示されているような警告が表示されます。

したがって、警告を取り除くには、次のいずれかを行う必要があります。

  • <target>(つまり、jdk1.7)に完全に一致するJavaバージョン)をインストールしますそして、Preferences > Java > Installed JREs > Runtime Environmentsの下に追加します
  • PomのJavaバージョンを、完全に一致するバージョンに構成します

私のプロジェクトはJava 7、8、9、10と互換性があります。私が達成したいのは、これらのバージョンのJava isインストール済み

使用する実行環境を構成する場合、Eclipseは<target>値のみを考慮します。 JRE Eclipseにインストールされているがあり、そのバージョンがそのプロパティの値と完全に一致していることを確認する必要があります。それ以外の場合、警告は消えません、期間。

特定のバージョンをターゲットにするつもりはありません。デフォルトのターゲットで問題なく動作します。

いいえ、そうではありません。デフォルトのターゲットは1.5だからです。ターゲット構成はオプションではない構成プロパティであり、「すべてをターゲットにする」オプションはありません。

Mavenで構成された実行環境をビルドパスから削除し、JREを直接追加することができます(project properties > Java Build Path > Libraries > Add library... > JRE System Library > Alternate JRE)。これにより警告も消えますが、Mavenプロジェクトの更新を実行するとすぐに戻ります。このような構成は、プロジェクトをマシン上のJava)の特定のインストールに関連付けるため、実際には使用しないでください。

3
crizzis