как intellij / maven определяет, какая версия соответствует значению jdk.version в pom.xml файл?

#maven #intellij-idea #maven-plugin

#maven #intellij-идея #maven-плагин

Вопрос:

в одном из файлов pom у меня есть следующее

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <phase>prepare-package</phase>
                </configuration>
            </plugin>
  

я подозреваю, что именно поэтому это конкретное приложение имеет следующие значения на странице настроек компилятора
введите описание изображения здесь

и преобразуется на уровень языка 14 на странице структуры проекта

введите описание изображения здесь

Несмотря на то, что я продолжаю устанавливать для него значение 8, после нескольких сборок оно возвращается к 14, несмотря на то, что для моего компилятора по умолчанию установлено значение 8, и у меня даже нет версии компилятора 14 в моем списке компиляторов в intellij.

Что приводит меня к 2 вопросам:

  1. Из каких системных переменных считываются intellij или maven, что побуждает их постоянно устанавливать уровень языка на 14?
  2. как мне изменить это, чтобы оно оставалось равным 8? Я не могу изменить запись в pom.xml файл по деловым соображениям.

Комментарии:

1. Откуда Maven читает ${jdk.version} ? Является ли это свойством в POM? Или setings.xml ? Или это указано в командной строке?

2. Можете ли вы mvn clean compile успешно использовать командную строку? Похоже ${jdk.version} , что нигде не определено, поэтому IDE не может его разрешить.

3. @JFabianMeier Что касается вашего вопроса «откуда maven читает ${jdk.version} «, если вы имеете в виду, где в моем коде используется свойство, да, оно указано в файле pom точно так, как я перечислил выше. Если вы имеете в виду, как maven узнает, к какой версии это относится, я понятия не имею, и это то, что я пытаюсь выяснить с помощью этого сообщения SO. Я не вижу, чтобы оно указывалось где-либо в аргументах командной строки

4. @Andrey Я могу прямо сейчас, потому что пару дней назад я исправил уровень языка до 8, и intellij еще не вернул его на 14. сообщу вам, если смогу, когда intellij снова выполнит возврат.