Избегайте предупреждения" нет JREs, установленных в рабочей области, которые строго совместимы " в Eclipse для нескольких версий Java

Я знаю, что уже есть много вопросов об этом предупреждении, но мой вопрос немного отличается. Я понимаю, что могу использовать эту конфигурацию в my pom.xml исправить

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

это избавляется от предупреждения, но только если у меня установлен и настроен Java 7 в Eclipse. Если, например, у меня есть только Java 8, я все еще вижу предупреждение, если я не изменю версию в конфигурации выше на 1.8:

построить путь исполнения окружающая среда JavaSE-1.7. Нет Jres, установленный в рабочей области, которые строго совместимы с этим окружающая среда.

мой проект совместим с Java 7, 8, 9 и 10. Я хочу избежать этого предупреждения, если какая-либо из этих версий Java установлена без изменения версии в my pom.xml чтобы каждый раз соответствовать установленной версии Java. Что-то сказать Eclipse, что Java 7 или что-то выше хорошо.

проект еще компилирует и отлично работает с предупреждением, это просто отвлекает, поскольку он отмечает проект как имеющий проблемы. Я знаю, что я могу скрыть этот тип предупреждений в настройках Eclipse, но есть ли способ избавиться от него, ТОЛЬКО используя некоторую конфигурацию в pom.xml?

1 ответов


Eclipse использует значение <target>1.7</target> чтобы решить, какую среду выполнения включить в путь сборки, как часть его интеграции Maven.

среды выполнения сопоставляются с JREs установлен в Eclipse (т. е. ссылка в Preferences > Java > Installed JREs).

само сопоставление настроено в Preferences > Java > Installed JREs > Runtime Environments. Eclipse автоматически будет соответствовать среде выполнения (например,JavaSE-1.7) к установленной JRE (например jdk1.7.0_80). Если нет точного соответствия для среда выполнения, указанная в вашем проекте, даст вам предупреждение, подобное тому, которое вы получаете.

поэтому, чтобы избавиться от предупреждения, вы должны либо:

  • установите версию Java, которая точно соответствует вашему <target> (т. е. jdk1.7) и добавить его в Preferences > Java > Installed JREs > Runtime Environments
  • настройте версию Java в вашем pom на ту, для которой есть точное соответствие

мой проект совместим с Java 7, 8, 9 и 10. Я хочу избежать этого предупреждения, если какая-либо из этих версий Java установлена

при настройке среды выполнения для использования Eclipse заботится только о <target> значение. Вы должны убедиться, что есть JRE установлен в Eclipse чья версия идеально подходит для значения этого свойства. Иначе предупреждение никуда не денется, точка.

у меня нет намерение нацелиться на определенную версию, цель по умолчанию будет работать нормально для меня.

нет, это не так, потому что цель по умолчанию-1.5. Целевая конфигурация является необязательным свойством конфигурации, нет опции "target everything".

вы можете удалить настроенную Maven среду выполнения Из пути сборки и добавить JRE напрямую (project properties > Java Build Path > Libraries > Add library... > JRE System Library > Alternate JRE). Это также заставит предупреждение уйти, но оно вернется, как только вы запустите Maven обновление проекта. Такая конфигурация не должна использоваться, так как она связывает ваш проект с определенной установкой Java на вашем компьютере.