Как проверить, какая версия Java, Maven, Gradle, NodeJs установлена на вашем компьютере, и как установить переменные среды для всех этих инструментов сборки или JDK?
1 ответ
Перейдите в CMD (для Windows) или в оболочку терминала (для Linux / Ubuntu)
Чтобы проверить, какая версия Java и версия компилятора установлены:
C:\>java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
Здесь вы можете проверить версию компилятора
C:\>javac -version javac 1.7.0_71
Чтобы проверить, какая версия Maven установлена: Используйте (версия mvn -v или mvn)
Как выяснить и изменить, какую версию Java Maven использует для выполнения?
mvn -version выведет, какую java он использует. Если JAVA_HOME установлен в действительный каталог JDK, а Maven использует что-то еще, то, скорее всего, кто-то вмешался в то, как Maven запускает.
mvn -version сообщает вам, какой компилятор Maven использует, поэтому это отвечает на вопрос, если ваш POM не указывает значения переопределения для используемых версий.
Здесь самый простой способ указать переопределения в pom.xml :
В качестве альтернативы maven-compiler-plugin можно указать более явно. В этом случае просмотрите значения и , связанные с плагином.
Оба этих параметра описаны здесь.
Если ваш POM имеет , вам также нужно проверить это (рекурсивно).
Примечание. Если указаны source и target , эти значения передаются в качестве параметров командной строки для компилятора. Используя эту функцию, вы можете компилировать или запускать предыдущие версии Java, чем номинальное значение компилятора.
Пример того, как установить компилятор, если вы не хотите просто использовать javac из своего пути: JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 mvn clean install . Ваш пробег может варьироваться в зависимости от того, как / когда это может быть изменено в Maven.
В качестве окончательной проверки работоспособности вы можете запросить javac / java из среды сборки, задав для параметров сборки добавление -version к аргументу командной строки — как здесь (для Gradle).
Прежде чем двигаться дальше, мы можем проверить JDK-версию Maven по умолчанию. Выполнение команды mvn -v покажет версию Java, в которой работает Maven.
2. Используйте плагин компилятора
Мы можем указать нужную версию Java в плагине компилятора .
2.1. Плагин компилятора
Первый вариант — установка версии в свойствах плагина компилятора:
Компилятор Maven принимает эту команду с версиями – target и – source . Если мы хотим использовать языковые функции Java 8, параметр – source должен быть установлен на 1.8 .
Кроме того, чтобы скомпилированные классы были совместимы с JVM 1.8, целевое значение должно быть равно 1,8 .
Значение по умолчанию для них обоих — версия 1.6.
Кроме того, мы можем настроить плагин компилятора напрямую:
Плагин maven-compiler-plugin также имеет дополнительные свойства конфигурации, которые позволяют нам лучше контролировать процесс компиляции за пределами исходной и целевой версий.
2.2. Java 9 и выше
Кроме того, начиная с версии JDK 9, мы можем использовать новую опцию командной строки -release . Этот новый аргумент автоматически настроит компилятор для создания файлов классов, которые будут связаны с реализацией данной версии платформы.
По умолчанию параметры -source и -target не гарантируют кросс-компиляцию.
Это означает, что мы не можем запускать наше приложение на старых версиях платформы. Кроме того, для компиляции и запуска программ для более старых версий Java нам также необходимо указать параметр -bootclasspath .
Для правильной кросс-компиляции новая опция -release заменяет три флага: -source, -target и -bootclasspath .
После преобразования наших примеров мы можем объявить следующее для свойств плагина:
Этот родительский POM позволяет нам настраивать плагины по умолчанию и несколько свойств, включая версию Java — по умолчанию версия Java — 1.8 .
Однако мы можем переопределить версию родителя по умолчанию, указав свойство java.version :
properties>java.version>9java.version>properties>
Установив свойство java.version , мы объявляем, что исходная и целевая версии 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-compiler-plugin .
Если вы устраняете неполадки и вам интересно, какая версия Java используется в вашей установке Maven, то вы будете рады узнать, что на самом деле существует очень простая команда, которая подскажет вам.
Просто ответ
Очень просто, вы можете использовать mvn -v , mvn —version или mvn -version для вывода не только версии Java, но и некоторых других деталей, например, где находится установка Java и информации об операционной системе, для Sonatype:
Хотите отображать информацию о версии, не останавливая сборку?
В некоторых приложениях (например, конвейерах CI / CD) вы можете отображать информацию о версии, не останавливая сборку полностью. Для этого просто запустите команду mvn -V (то есть с заглавным флагом V ) или mvn —show-version .
Нужны примечания к выпуску или нужно обновить?
Если вам нужно обновить версию Maven, чтобы получить определенную функцию, не ищите ничего, кроме официального сайта Apache Maven со списком версий, которые вы можете загрузить.
Кроме того, есть подробные примечания к выпуску и справочная документация для каждого, если они вам понадобятся.
Эта статья возникла из-за того, что мне нужно было выяснить, какую версию Java использует Maven, но я также увидел полезность в том, чтобы точно знать, какую версию Maven я тоже использую. Я надеюсь, что благодаря этой статье вы тоже — если вы этого еще не знали — вспомните об этом, когда придет время.