Помогите определить запутанный способ, которым Maven работает без M2_HOME?

Я запускаю Ubuntu 12.04 и я разработчик Java, который недавно ушел с рабочего стола и начал работать на новом ноутбуке. У меня есть несколько проблем с сборкой, и я изучаю мою установку Maven.

Я получил некоторую помощь в настройке своего ноутбука и нашел следующую конфигурацию Maven запутанной. Я установил Maven (по аналогии со сверстниками) и запущен, но не имеет M2_HOME. Я бы подумал, что это будет требованием.

Ниже приводится мой вывод, когда я запускаю mvn --version

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_GB, platform encoding: UTF-8 
OS name: "linux", version: "3.5.0-23-generic", arch: "amd64", family: "unix"

Ничто из следующего не дает мне ничего: printenv | grep "maven", printenv | grep "mvn", printenv | grep "M2".

Нет ничего особенного в ~ / .profile или / etc / environment, связанных с Maven.

Можете ли вы предоставить любые подсказки / направление относительно того, почему mvn -version в консоли дает вывод?

1
задан 30 October 2014 в 19:08

2 ответа

Во-первых, это не MAVEN_HOME, но, как это записано в заголовке M2_HOME ... Следующее утверждение верно: команда mvn находится в вашем пути ... Команда mvn будет функционировать правильно, если вам было назначено home directory ...

В домашнем каталоге вы найдете каталог .m2.. В $HOME/.m2 вы найдете репозиторий maven и файл settins.xml. Вам не нужен M2_HOME (протестирован), но вам нужен JAVA_HOME ...

1
ответ дан 24 May 2018 в 11:52
  • 1
    Итак, потому что .m2 в моем домашнем каталоге работает? – Crowie 12 February 2014 в 21:32
  • 2
    Да, это потому, что mvn может получить каталог .m2, связанный с домашним каталогом пользователя, что все работает так, как ожидалось ... Попробуйте переименовать .m2 в .m2.disabled ... Каталог будет воссоздан как в первый раз, когда вы сделал mvn на этой машине ... – Rudy Vissers 12 February 2014 в 21:39
  • 3
    Хорошо, но почему Maven является исполняемым без M2_HOME? Что делает Maven доступным? – Crowie 12 February 2014 в 22:20
  • 4
    ... и ничего не видно на любых компонентах PATH – Crowie 12 February 2014 в 22:21
  • 5
    Это невозможно ... Если вы находитесь в терминале, и вы вводите «mvn», и bash может найти команду «mvn», тогда «mvn» должен быть на вашем пути ... Разве это не так? – Rudy Vissers 13 February 2014 в 15:57

Проблема исчезла / была скрыта, но, случайно, я просмотрел мою версию Java, и кто-то дал мне поручение выполнить это

which java 

Я также сделал which mvn. [!d1 ]

Следуя нескольким ссылкам отсюда:

/usr/bin

Я вижу связку ссылок, которые помогают мне увидеть, что установлено на моей машине. Если я следую ссылкам в /usr/bin, просмотрев их цели, я попаду в папку /etc/alternatives. В этом я предполагаю, что вижу почти все, что можно выполнить на моем компьютере через консоль или PATH. Отсюда я могу видеть вещи о Maven (mvn) и Java (java и javac) и других исполняемых программах. Я не знаю, что это за папка.

Папка с исполняемыми файлами находится здесь:

/etc/alternatives

Итак, я просматриваю все программы с помощью этой команды:

В конце я вижу цель Maven.

Опять же, все это было связано с использованием which, когда у меня возникла проблема или некоторая путаница в отношении моих исполняемых версий Java:

which <insert executable name here>

which mvn . Как я уже отмечал выше, о поиске текущей версии Java, содержимое файла /etc/environment, которое может использоваться для установки переменных среды сортировки, содержит запись, содержащую следующий фрагмент:

/usr/bin Таким образом, я полагаю, / usr / bin находится на моих PATH и / usr / bin / содержит ссылки, и эти ссылки указывают на исполняемые файлы, которые включают Maven, Java и и т. д.

1
ответ дан 24 May 2018 в 11:52

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

Похожие вопросы: