Force Maven использовать разные версии JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Force Maven использовать разные версии Java

Сообщение Anonymous »

У меня есть мой существующий проект, который использует Java 1.8.

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


Добавлен инструмент chachain плагин в моих проектах pom.xml :

Код: Выделить всё



org.apache.maven.plugins
maven-toolchains-plugin
1.1



toolchain






1.11
sun




Теперь, когда я запускаю MVN Clean Install , я вижу в журналах, которые Java 11 ', кажется, будет использован:

[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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»