it-swarm.com.ru

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

  1. Я изменил «Путь сборки Java» на «Рабочая среда по умолчанию jre 1.8.0_25»
  2. Потом поменял "компилятор Java" на 1.8
  3. Потом поменял "грани проекта"> Java> 1.8
  4. Изменена версия 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. Как я могу это исправить?

75
asdlfkjlkj

Откройте файл 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 as 

<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 здесь и не забудьте также дать ему отзыв. :)

154
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>

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

9
JDelorean

Основная причина этой проблемы заключается в том, что если по какой-либо причине 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}never собирается разрешить свойство (совершенно другое) javaVersion, и Eclipse проигнорировал это свойство и использовал значение по умолчанию.

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

4
David Avendasora

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

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

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

1
nsandersen

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

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

1
user902383

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

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

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

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

Благодаря этому в проекте будет использоваться Java 11, но вы должны написать 10 для Java-версии в pom.xml, а также установить 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

Поэтому решение состоит в том, чтобы либо получить более новую версию IDE, которая включает в себя встроенную среду JRE версии 1.8 или более поздней, либо попробовать установить ее вручную (см. https://stackoverflow.com/a/35204314. )

0
blindcodifier9734