Версия 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.