1. Обзор
В этом кратком руководстве мы покажем, как установить версию Java в Maven.
Прежде чем двигаться дальше, мы можем проверить версию Maven JDK по умолчанию. Выполнение команды mvn -v покажет версию Java, в которой выполняется Maven.
Дальнейшее чтение:
Руководство по профилям Maven
Плагин компилятора Maven
2. Используйте плагин компилятора
Мы можем указать желаемую версию Java в плагине компилятора .
2.1. Плагин компилятора
Первый вариант-это установка версии в свойствах плагина компилятора:
1.8 1.8
Компилятор Maven принимает эту команду с версиями – target и – source . Если мы хотим использовать функции языка Java 8, параметр – source должен быть установлен в 1.8 .
Кроме того, чтобы скомпилированные классы были совместимы с JVM 1.8, значение – target должно быть 1.8 .
Значение по умолчанию для обоих из них-версия 1.6.
В качестве альтернативы мы можем настроить плагин компилятора напрямую:
maven-compiler-plugin 1.8 1.8
maven-compiler-plugin также имеет дополнительные свойства конфигурации, которые позволяют нам иметь больший контроль над процессом компиляции за пределами версий -source и -target .
2.2. Java 9 и выше
Кроме того, начиная с версии JDK 9, мы можем использовать новую опцию командной строки -release . Этот новый аргумент автоматически настроит компилятор на создание файлов классов, которые будут связаны с реализацией данной версии платформы.
По умолчанию -источник и -цель параметры не гарантируют перекрестную компиляцию.
Это означает, что мы не можем запускать наше приложение на более старых версиях платформы. Кроме того, для компиляции и запуска программ для более старых версий Java нам также необходимо указать параметр -bootclasspath .
Для правильной кросс-компиляции новый -отпустите опция заменяет три флага: -источник, -target и -bootclasspath .
После преобразования наших примеров мы можем объявить следующее для свойств плагина:
7
И для maven-компилятор-плагин начиная с версии 3.6, это то, что мы можем написать:
org.apache.maven.plugins maven-compiler-plugin 3.8.0 7
Обратите внимание, что мы можем добавить версию Java в новый атрибут . В этом примере мы компилируем наше приложение для Java 7.
Более того, нам не нужен JDK 7, установленный на нашей машине. Java 9 уже содержит всю информацию для связывания новых языковых функций с JDK 7.
3. Спецификация Пружинного Ботинка
Приложения Spring Boot указывают версию JDK внутри тегов properties в pom.xml файл.
Во-первых, нам нужно добавить spring-boot-starter-parent в качестве родителя в наш проект:
org.springframework.boot spring-boot-starter-parent
Этот родительский POM позволяет нам настраивать плагины по умолчанию и несколько свойств, включая версию Java — по умолчанию версия Java 1.8 .
Однако мы можем переопределить версию родителя по умолчанию, указав свойство java.version :
1.9
Установив Установив свойство, мы объявляем, что исходная и целевая версии Java равны 1.9 .
Прежде всего, мы должны иметь в виду, что это свойство является спецификацией Spring Boot. Кроме того, начиная с Spring Boot 2.0, Java 8 является минимальной версией.
Это означает, что мы не можем использовать или настраивать Spring Boot для более старых версий JDK.
4. Заключение
Этот краткий учебник продемонстрировал возможные способы установки версии Java в нашем проекте Maven.
Вот краткое изложение основных выводов:
- С помощью возможно только с приложением Spring Boot.
- Для простых случаев лучше всего подходят maven.compiler.source и maven.compiler.target свойства.
- Наконец, чтобы иметь больше контроля над процессом компиляции, используйте maven-компилятор-плагин параметры конфигурации.