На моей машине установлены две версии Java: (1.6 и 1.7, установленные мной вручную). Мне они оба нужны для разных проектов. Но для Maven мне нужен 1.7, теперь мой Maven использует версию java 1,6, как мне настроить Maven на использование 1.7?
166
Ответы:
Maven использует
JAVA_HOME
параметр, чтобы найти версию Java, которую предполагается запустить. Я вижу из вашего комментария, что вы не можете изменить это в конфигурации.JAVA_HOME
параметр непосредственно перед запуском maven (и при необходимости изменить его обратно).mvn
(не Windows) /mvn.bat
/mvn.cmd
(Windows) и явно указать свою версию Java.источник
JAVA_HOME
свою локальную оболочку, не меняя конфигурацию своей машины вообще (как только вы закроете эту оболочку, изменения исчезнут). Вы даже можете изменить его для одной команды:JAVA_HOME=/path/to/jdk17/ mvn build
В POM вы можете установить свойства компилятора, например, для 1.8:
источник
Добавление решения для людей с несколькими установленными версиями Java
У нас есть большая кодовая база, большая часть которой находится на Java. Большая часть того, над чем я работаю, написана на Java 1.7 или 1.8. Поскольку
JAVA_HOME
он статический, я создал псевдонимы.bashrc
для запуска Maven с разными значениями:Это позволяет мне запускать Maven из командной строки на моей машине для разработки независимо от версии JDK, используемой в проекте.
источник
mvn2
иmvn3
определились, а именование становится немного забавным, когда в игру вступают и версии Java ...: Dalias mvn8 = "JAVA_HOME=`/usr/libexec/java_home -v 1.8` && mvn
&&
доmvn
. mvn не видит значение JAVA_HOME с&&
.На окнах
Если вы не хотите менять свою
JAVA_HOME
переменную внутри системных переменных.Отредактируйте ваш
mvn.bat
файл и добавьте такую строкуЭто можно сделать после того,
@REM ==== START VALIDATION ====
как упомянуто @JonathanНа Mac (и Linux?)
Если вы не хотите изменять
JAVA_HOME
переменную внутри вашего~/.bashrc
или~/.bash_profile
Вы можете создать
~/.mavenrc
файл и переопределить ваш,JAVA_HOME
используя инструмент java_homeСанитарная проверка
Вы можете убедиться, что все работает нормально, выполнив следующие команды. Версия JDK должна быть другой.
mvn -version
затем
java -version
источник
Добавление двух моих центов и явное предоставление решения.
На моем компьютере с Windows установлено два пакета JDK -
JDK 1.5
иJDK 1.6
.Мое значение по умолчанию (и значение переменной среды Windows)
JAVA_HOME
установлено наJDK 1.5
.Тем не менее, у меня есть проект maven, который мне нужно создать (например, Etsy.com из JBehave Tutorial ), используя
JDK 1.6
.Мое решение в этом сценарии (которое сработало!), Как предложено
@DanielBarbarian
для его установкиmvn.bat
.Для тех, кто не знаком с пакетным файлом окна, я просто добавил
set JAVA_HOME=<path_to_other_jdk>
строку после@REM ==== START VALIDATION ====
inmvn.bat
(т.е.%MAVEN_HOME%\bin\mvn.bat
):источник
mvn.bat
переименован вmvn.cmd
.Я только недавно, после семи долгих лет с Maven, узнал о toolchains.xml. У Maven это даже задокументировано и поддерживается с 2.0.9 - документация по цепочкам инструментов
Поэтому я добавил файл toolchain.xml в папку ~ / .m2 / со следующим содержимым:
Это позволяет вам определить, какие разные JDK Maven могут использовать для создания проекта, независимо от того, с чем запускается JDK Maven. Вроде как, когда вы определяете JDK на уровне проекта в IDE.
источник
Одно простое решение проблемы -
На Mac это будет выглядеть примерно так:
PS: один особый случай, который я обнаружил, это приведенная выше команда, которая не работает на оболочке 'fish'. У меня также была оболочка bash, и там она работала нормально. просто используйте команду 'bash', чтобы переключиться на оболочку bash.
источник
Вы можете настроить компиляцию источников, используя разные JDK с
maven-compiler-plugin
.Просто укажите путь к
javac
в<executable>
теге. Например, для java11 это выглядит так:источник
Не изменяя переменные среды, вы можете управлять версией Java на основе уровня проекта с помощью плагина компилятора Maven.
Способ 1
Способ 2
источник
Чтобы избежать какого-либо влияния на ваш проект и переменные среды, вы можете настроить плагин компилятора Maven только для POM проекта, указав java-версию Source и Target.
источник
Вы можете настроить Maven на использование любой версии Java, следуя инструкциям ниже.
Установите jenv на вашу машину по ссылке
Проверьте доступные версии Java, установленные на вашем компьютере, введя следующую команду в командной строке.
Вы можете указать глобальную версию Java, используя следующую команду.
Вы можете указать локальную версию Java для любого каталога (Project), используя следующую команду в каталоге в командной строке.
Добавьте правильную версию Java в ваш pom.xml
если вы используете maven в командной строке, установите плагин jenv maven, используя команду ниже
Теперь вы можете настроить любую версию Java на своем компьютере для любого проекта без каких-либо проблем.
источник
На Mac (если у вас установлена правильная версия)
JAVA_HOME=`/usr/libexec/java_home -v 1.8` mvn clean install -DskipTests
источник
В Windows я просто добавляю несколько командных файлов для разных версий JDK в папку Maven bin следующим образом:
mvn11.cmd
тогда вы можете использовать
mvn11
для запуска Maven в указанном JDK.источник
В Linux / Unix сценарий оболочки JAVA_HOME в 'mvn' переопределяется настройками в
Пожалуйста, где добавить переменные пути JAVA_HOME и MAVEN в Linux
источник
У меня не было успеха на Mac с просто настройки
JAVA_HOME
в консоли, но я был успешным с этим подходом~/.mavenrc
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
источник
Также вы можете установить две версии maven и отредактировать одну из них, отредактировав здесь:
заменив ваш внешний вид% java_home% на ваш желаемый путь Java. Затем просто выполните Maven с этого измененного пути
источник