Версия Java автоматически изменяется на java 1.5 после обновления maven

Я использую eclipse как IDE. Когда я нажму правой кнопкой мыши на проекте, а затем нажмите 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/

  • Я изменил "путь сборки Java" на "workspace default jre 1.8.0_25"
  • Затем изменился "java-компилятор" на 1.8
  • Затем изменились "грань проекта" > java > 1.8
  • Изменена версия java версии pom.xml до версии 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", моя версия Java изменится до 1.5 автоматически. Также в вышеприведенных шагах первая двухступенчатая версия также автоматически изменяется на 1,5. Как я могу это исправить?

Ответ 1

Откройте файл pom.xml и добавьте в него следующие строки:

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

Где 1.8 - это java-версия вашего текущего JDK/JRE. Другой способ сделать это - добавить <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>

Ответ 2

У меня была та же проблема, когда я установил 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>

Это, кажется, решило проблему.

Ответ 3

Основной причиной этой проблемы является то, что если по какой-либо причине Eclipse не может разрешить допустимое значение для свойства maven.compiler.source при создании/обновлении файла .classpath из pom, это просто по умолчанию использовать org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5.

Как экспертно ответил @jorge-campos, существует множество способов установить это свойство.

Однако, ответ Хорхе, похоже, не работал у меня. Вот мои настройки:

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

...

Совершенно верно. ${java.version} никогда не собирается разрешать (совершенно другое) свойство javaVersion, а Eclipse игнорирует свойство и использует значение по умолчанию.

Что возвращает меня в раздел " по любой причине", который я открыл; глупость разработчика может быть одной из тех причин.

Ответ 4

Добавьте эти строки в свой 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> 

Ответ 5

У меня была эта проблема. В моем случае <properties> тег и вложенные теги, о которых упоминал Хорхе Кампос, были не в том месте. Если я поместил их между <hostversion> и < зависимостей > теги в файле pom.xml, то это поведение прекратилось.

Это можно подобрать в Eclipse, если проверка этих файлов включена.

Ответ 6

Я сталкиваюсь с подобной проблемой на одной из моих команд. Он использовал старую версию Eclipse, я считаю, что он использовал Keppler. Проект после обновления изменяет версию JRE до 1.5.

Простое обновление Eclipse до последней версии решает эту проблему.

Ответ 7

Я позволю себе обновить эту тему с помощью Java 11.

Я установил OpenJDK11 на свой компьютер и хотел использовать его в приложении.

У меня были проблемы, потому что Eclipse всегда менял JRE на JavaSE-1.5, когда я обновлял свой проект с помощью Maven.

Я установил все, как вы сказали, но я всегда непосредственно выбирал в своем Java Build Path "java-11-openjdk.x86_64" в качестве одного из своих Alternante JRE. Я исправил свою проблему, выбрав в "среде выполнения" JavaSE-10 (но вы должны дважды щелкнуть по нему и затем выбрать в качестве совместимой JRE вашу версию OpenJDK11), как показано на рисунке. Настройка среды исполнения

Благодаря этому в проекте будет использоваться Java 11, но вам нужно написать 10 для java-версии в pom.xml, а также установить java 10 для граней проекта.

Ответ 8

В моем случае (старая JBoss Developer Studio) проблема заключалась в том, что среда JRE не включала 1.8 (только 1.7). Когда я переключил версию maven-compiler-plugin на 1.7 и выполнил проект обновления maven, он обновил системную библиотеку Eclipse JRE до 1.7. enter image description here

Таким образом, решение заключается в том, чтобы либо получить более новую версию IDE, включающую встроенную среду JRE версии 1.8 или более поздней, либо попробовать установить ее вручную (см. fooobar.com/questions/702880/...).

Ответ 9

Я изменил Eclipse с кеплера на неон, а затем обновил свой проект с помощью Maven → Update Project.