maven игнорируя настройки jenv

У меня был OSX с Java 1.6 установлен, и я только что установил jenv вместе с Java 1.7:

$ jenv local '1.7'
$ jenv versions
  system
  1.6
  1.6.0.65
* 1.7 (set by /Users/me/workspace/.java-version)
  1.7.0.79
  oracle64-1.6.0.65
  oracle64-1.7.0.79

jenv делает свою работу, с $ java -version всегда работает, показывая 1.6, когда я установил на 1.6, и 1.7, когда я установил на 1.7:

$ java -version
java version "1.7.0_79"                    <--------------------------------- YAY!!
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

... но maven игнорирует мои настройки:

$ mvn -version
Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500)
Java version: 1.6.0_65, vendor: Apple Inc. <--------------------------------- BAH!!
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"

Я нашел этот ТАК вопрос, где парню просто нужно было жестко закодировать его JAVA_HOME внутри .mavenrc, но я не хочу, чтобы мои жестко закодированы (таким образом, jenv!), а у меня нет ~/.mavenrcни /etc/mavenrc,

Версия, которую он использует, похоже, от первой на /usr/libexec/java_home выход, так что в краткосрочной перспективе я смог вернуть 1,6 снова, настроив 1,7 Info.plist файл (из этого поста), но это просто означает, что я получаю 1.6 вместо 1.7.

Есть идеи?

6 ответов

Решение

Вам нужно установить плагин jenv maven, попробуйте следующую команду и перезагрузите вашу оболочку:

jenv enable-plugin maven

У меня была похожая проблема. Я запустил все, используя префикс всей команды jenv exec:

jenv exec mvn -version

Теперь появилась новая опция, как установить JAVA_HOME через плагин экспорта jenv:

jenv enable-plugin export

См. https://github.com/gcuisinier/jenv/issues/44.

Если вы включили maven а также export плагины, и по-прежнему есть проблемы, убедитесь, что у вас нет ~/.mavenrc файл, который устанавливает JAVA_HOME.

Еслиjenv enable-plugin exportвсе еще не работает, вам следует перезапустить Терминал и повторить попытку

я используюpwshна OS X и смог заставить его работать сmavenиexportплагины включены.

Однако я столкнулся со следующими ошибками:

  • Бегатьsh-enable-pluginвместо включения maven и экспорта (enable-pluginвыдает ошибку «команда не найдена»).
  • Отредактируйтеmvnсценарий (code "$(which mvn)") и удалитеJAVA_HOME=немного, чтобы в итоге у вас получилось что-то вроде этого:
      #!/bin/bash
exec "/usr/local/Cellar/maven/3.8.5/libexec/bin/mvn"  "$@"

Эти дополнительные шаги устранили мои проблемы, так чтоmvn -vпечатает правильную версию JDK.

Другие вопросы по тегам