Настройка версии Java в Maven

Установка версии Java в Maven

1. обзор

В этом кратком руководстве мы покажем, какset the Java version in Maven.

Прежде чем двигаться дальше, мы можемcheck the default JDK version of Maven. Выполнение командыmvn -v покажет версию Java, в которой работает Maven.

Дальнейшее чтение:

Руководство по профилям Maven

Узнайте, как работать с профилями Maven, чтобы иметь возможность создавать различные конфигурации сборки.

Read more

Maven Compiler Plugin

Узнайте, как использовать плагин компилятора Maven, используемый для компиляции исходного кода проекта Maven.

Read more

2. Используйте плагин компилятора

Мы можем указать желаемую версию Java вcompiler plugin.

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 and Beyond

Кроме того,starting from JDK 9 version, we can use a new -release command-line option. Этот новый аргумент автоматически настроит компилятор для создания файлов классов, которые будут связаны с реализацией данной версии платформы.

By default, the -source and -target options don’t guarantee a cross-compilation.

Это означает, что мы не можем запустить наше приложение на старых версиях платформы. Кроме того, чтобы скомпилировать и запустить программы для более старых версий Java, нам также необходимо указать параметр-bootclasspath.

Для правильной кросс-компиляции новая опция-release заменяет три флага:-source,-target and -bootclasspath.

После преобразования наших примеров для свойств плагина мы можем объявить:


    7

А дляmaven-compiler-plugin, начиная с версии 3.6, мы можем написать:


    org.apache.maven.plugins
    maven-compiler-plugin
    3.8.0
    
        7
    

Как мы заметили,we can add the Java version in a new <release> attribute. В этом примере мы компилируем наше приложение для Java 7.

Более того, нам не нужен JDK 7, установленный на нашем компьютере. Java 9 уже содержит всю информацию для связи новых функций языка с JDK 7.

3. Спецификация Spring Boot

Приложения Spring Boot указывают версию JDK внутри теговproperties вthe pom.xml file.

Во-первых, нам нужно добавитьspring-boot-starter-parent в качестве родителя к нашему проекту:


    org.springframework.boot
    spring-boot-starter-parent
    2.0.5.RELEASE

Этот родительский POM позволяет нам настраивать плагины по умолчанию и несколько свойств, включая версию Java: по умолчанию версия Java -1.8.

Однако мы можем переопределить версию родителя по умолчанию, указав свойствоjava.version:


    1.9

By setting the java.version property we declare that the source and the target Java versions are both equal to 1.9.

Прежде всего, мы должны помнить, что это свойство является спецификацией Spring Boot. Дополнительноstarting from the Spring Boot 2.0, Java 8 is the minimum version.

Это означает, что мы не можем использовать или настраивать Spring Boot для более старых версий JDK.

4. Заключение

Это краткое руководство демонстрирует возможные способы настройки версии Java в нашем проекте Maven.

В итоге:

  • Использование<java.version> возможно только с приложением Spring Boot

  • Для простых случаев лучше всего подходят звездочкиmaven.compiler.source песокmaven.compiler.target .

  • Наконец, чтобы иметь больший контроль над процессом компиляции, используйте параметры конфигурацииmaven-compiler-plugin