web-dev-qa-db-ja.com

Javaバージョンは、Mavenの更新後にJava 1.5に自動的に変更されます

IDEとしてEclipseを使用しています。プロジェクトを右クリックしてから[Maven]をクリックすると、Javaバージョンが1.5に変更されます。ここに私がこれまでやったこと、ここにリストされているすべてのステップを踏んだ

http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0-requires-Java-1-6-or-newer-in-maven-projects/ =

  1. 「Java build path」を「workspace default jre 1.8.0_25」に変更しました
  2. 次に、「Javaコンパイラ」を1.8に変更しました
  3. 次に、「プロジェクトファセット」> Java> 1.8を変更しました
  4. Pom.xml Javaバージョンを1.8に変更しました
    <build>
        <plugins>
            <plugin>
                <groupId>org.Eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.1.3.v20140225</version>
            </plugin>
            <plugin>
                <groupId>org.Apache.maven.plugin</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

結局、「Maven update」をクリックすると、Javaバージョンが自動的に1.5に変更されます。また、上記の手順では、最初の2つの手順のバージョンも自動的に1.5に変更されます。どうすれば修正できますか?

94
asdlfkjlkj

pom.xmlファイルを開き、次の行を追加します。

<properties>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

1.8は、現在のJDK/JREのJavaバージョンです。これを行う別の方法は、<build>maven-compile-pluginとともに追加することです

<build>
<plugins>
  <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
</plugins>
</build>

編集

Javaバージョン9以降で動作する方法を探している場合は、 @ JDelorean'sanswerここで、彼にも賛成票を渡すことを忘れないでください:)

175
Jorge Campos

Javaをインストールしたときに同じ問題が発生しました。9。私のプロジェクトはデフォルトでJ2SE-1.5実行環境になります。奇妙なことに、Java 9コンプライアンスレベルは、以前のバージョン、つまり「1.8」のように参照されず、「9」として参照されます。そのため、それに応じてプロパティとMavenコンパイラプラグインの設定を提供する必要がありました。

<properties>
    <maven.compiler.source>9</maven.compiler.source>
    <maven.compiler.target>9</maven.compiler.target>
</properties>

そして

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

これで問題が解決したようです。

15
JDelorean

この問題の根本的な原因は、何らかの理由でEclipseがvalid値を解決できないことですpomから.classpathファイルを生成/更新するときにmaven.compiler.sourceプロパティを使用すると、デフォルトでorg.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5が使用されます。

@ jorge-campos が巧みに答えているように、そのプロパティを設定する方法は複数あります。

しかし、Jorgeの答えは表示されませんでした私のために働く。ここに私の設定がありました:

<properties>
    <javaVersion>1.8</javaVersion>
    <maven.compiler.source>${Java.version}</maven.compiler.source>
    <maven.compiler.target>${Java.version}</maven.compiler.target>
</properties>

...

まさに。 ${Java.version}never(完全に異なる)プロパティjavaVersionに解決され、Eclipseはプロパティを無視し、デフォルトを使用しました。

これにより、私が開いた「何らかの理由」の部分に戻ります。開発者の愚かさは、これらの理由の1つです。

5

この行をpom.xmlに追加し、JREシステムライブラリを右クリック->プロパティ->正しい実行環境をJava 1.8または設定するバージョンに設定します。

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin> 
2
Avinav Mishra

この問題がありました。私の場合、上記のJorge Camposが言及した<properties>タグとネストされたタグは間違った場所にありました。 pom.xmlファイルの<hostversion>タグと<dependencies>タグの間に配置すると、この動作は停止しました。

これらのファイルの検証がオンになっている場合、Eclipseでそれを拾うことができます。

1
nsandersen

チームメイトマシンの1つで同様の問題が発生します。彼は古いバージョンのEclipseを使用していました。私は彼がKepplerを使用していたと信じています。更新後のプロジェクトは、JREバージョンを1.5に変更します。

Eclipseを最新バージョンに更新するだけでこの問題は解決します。

1
user902383

Java 11.でその件名を更新することを許可します。

コンピューターにOpenJDK11をインストールしましたが、アプリで使用したかったのです。

Mavenを使用してプロジェクトを更新すると、Eclipseは常にJREをJavaSE-1.5に変更するため、問題が発生しました。

あなたが言ったようにすべてを設定しましたが、Alternante JREの1つとしてJava Build Path "Java-11-openjdk.x86_64"で常に直接選択していました。図に示すように、「実行環境」JavaSE-10(ただし、ダブルクリックしてから、互換性のあるJREとしてOpenJDK11バージョンを選択する必要があります)を選択して問題を修正しました。 実行環境のセットアップ

プロジェクトはそのおかげでJava 11を使用します(写真)が、pom.xmlでJavaバージョンに10を記述し、Project FacetsにJava 10を設定する必要があります。

0
Claeyssic

私の場合(古いJBoss Developer Studio)、問題はJRE環境に1.8(1.7のみ)が含まれていなかったことです。 maven-compiler-pluginバージョンを1.7に切り替えてmaven更新プロジェクトを実行すると、Eclipse JREシステムライブラリが1.7に更新されました。 enter image description here

そのため、解決策は、1.8以降の組み込みJRE環境を含む新しいIDEバージョンを取得するか、手動でインストールしようとします( https://stackoverflow.comを参照)/a/35204314

0