my $ java_home < /code> установлен на Java 1.8.
В результате Maven использует Java 1.8 , что нормально.
Теперь наш проект решил начать использовать Sonarqube 9.x, который работает на Java 11.
в дополнение к выполнению любого сканирования /анализа нашего кода - Это также нуждается в Java 11.
Код: Выделить всё
mvn clean install#2 Запустите Sonar Scan с использованием JDK 11 (
Код: Выделить всё
mvn sonar:sonarДля выполнения #2 Maven необходимо использовать JDK 11, чтобы выполнить #1 Maven необходимо использовать JDK 1.8.
После прочтения различных вопросов по SO, я наткнулся на 'Toolchain'. >
Код: Выделить всё
jdk
1.11
sun
C:\construction\tools\jdk-11.0.12
jdk
1.8
sun
C:\Program Files\Java\jdk1.8.0_191
Код: Выделить всё
org.apache.maven.plugins
maven-toolchains-plugin
1.1
toolchain
1.11
sun
[info] --- Maven-toolchains-plugin: 1.1: Toolchain (по умолчанию) @ treesurveyapi --- < /p>
[info] Требуемый инструмент: Jdk [поставщик = 'sun' version = '1.11']
[info] Нашел соответствующий инструмент для типа jdk: jdk [c: \ construction \ tools \ jdk-11.0.12] < /p>
[info] --- Maven-Compiler-Plugin: 3.7.0: Compile (по умолчанию compile) @ treesurveyapi ---
[info] Toolchain в Maven-Compiler-Plugin: Jdk [c: \ construction \ tools \ jdk -11.0.12]
[info] Обнаруженные изменения - перекомпиляция модуля!
[info] Сопровождение 11 исходных файлов в c : \ Construction \ xxx \ xyz-main \ target \ classes < /p>
< /blockquote>
Так что, кажется, «кажется, что наряду с инструментом использует Java 11 для компиляции кода .
Однако после выполнения Javap против скомпилированного файла класса указывает на основную версию 52 (Java 8): < /p>
javap -verbose Abc.class | findstr "major"
< /code>
Итак, вот мои вопросы: < /p>
#1
в приведенном выше случае, так как инструмент указывает на Java 11, не должно Код будет составлен с Java 11? Почему он использует Java 8?
Подробнее здесь: https://stackoverflow.com/questions/698 ... va-version
Мобильная версия