Версия Java - Maven - Путь к классам?

Итак, мой проект maven настроен на Java9

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.9</source>
                <target>1.9</target>
                <compilerVersion>1.9</compilerVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

Но если я проверю путь сборки проекта, в eclipse все равно будет указано JRE System Library [J2SE-1.5] (вместо JavaSE-9), поэтому он в основном использует Java1.5 и дает мне много ошибок. Если я вручную исправлю эту запись, все будет в порядке. Но разве Maven не должен обрабатывать полные настройки пути к классам? Ответ на этот вопрос, вероятно, довольно прост, но я не могу его понять.

Спасибо!

Версия Java - Maven - Путь к классам?

РЕДАКТИРОВАТЬ Исправление заключалось в том, чтобы удалить compilerVersion и отредактировать исходный и целевой теги:

<configuration>
    <source>9</source>
    <target>9</target>
</configuration>

Во-первых, какую версию Eclipse вы используете?

khmarbaise 21.04.2018 12:25

Кислород! может это быть проблемой?

Michael 21.04.2018 20:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
392
2

Ответы 2

Иногда исходная версия Maven (1.9 - ваш конкретный случай) и исходная версия Eclipse не синхронизируются, особенно если исходная версия в файле pom.xml изменена после проект был создан в Eclipse. Чтобы вернуть их в синхронизацию, выполните следующие действия:

  1. Щелкните правой кнопкой мыши проект
  2. Наведение мыши Maven
  3. Нажмите Update Project...

Вы также можете обновить конфигурацию Maven с помощью Alt + F5. Для получения дополнительной информации см. Что заставляет импортированный проект Maven в Eclipse использовать Java 1.5 вместо Java 1.6 по умолчанию и как я могу гарантировать, что это не так?.

Я, конечно, пробовал, но иногда кажется, что затмение что-то делает, а потом снова SE1.5. Мне приходится вручную перезаписывать путь к классам снова и снова. Забавно то, что если я установил его на JDK9, запись в обзоре пути к классам из eclipse исчезнет, ​​и все в порядке :(

Michael 21.04.2018 16:25

Итак, я попробовал несколько вещей, и оказалось, что проекты обновления сбрасывают проект на se1.5. Ошибка должна быть где-то еще :(

Michael 21.04.2018 20:37

Шаг 1. Проверьте ПУТЬ MAVEN и JAVA

mvn -v

В выводе проверьте, указывает ли "версия Java" на 1.9.

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T13:28:13+05:30)
Maven home: /Maven/3.5.2
Java version: 9.0.4, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-9-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-119-generic", arch: "amd64", family: "unix"

Шаг 2. Убедитесь, что JDK 9 настроен в IDE (eclipse / sts)

  • Перейдите в Предпочтения> Java> Установленные JRE :: Проверьте, доступна ли Java 9
  • Если Java 9 недоступна, нажмите Добавлять
  • Выберите JRE Type Стандартная виртуальная машина / JVM и щелкните Следующий.
  • JRE Главная - домашний путь Java 9.
  • Имя JRE заполнится автоматически, а Системные библиотеки JRE покажет, что jrt-fs.jar загружен.
  • Хит Заканчивать
  • Теперь вы должны увидеть JVM 8 и 9 как отображается в разделе Установленные JRE
  • Хит Применить и закрыть

Шаг 3. Обновите проект Maven, чтобы изменения повлияли на него

  • Следуйте совету Джастин Альбано, и вы готовы работать со своим проектом Maven с использованием Java 9.

Я использую встроенный maven eclipse. Но он всегда устанавливает версию SE1.5. Если я установлю SE9 вручную, некоторые функции, такие как иерархия вызовов и тому подобное, больше не будут работать, есть идеи?

Michael 21.04.2018 20:38

Другие вопросы по теме