Maven3 system.property user.home против переменной среды HOME

Кажется, есть проблема со свойствами системы в Maven. Кажется, что системные свойства не соответствуют переменным среды.

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

Если вам нужно создать пользовательские настройки с нуля, проще всего скопировать глобальные настройки из вашей установки Maven в каталог ${user.home}/. M2

Это означает, что единственный способ изменить абсолютное местоположение пользовательского файла - это изменить user.home имущество. Но, похоже, это не совсем HOME или же HOMEPATH переменная окружения. На самом деле я удалил все переменные окружения, такие как HOME а также HOMEPATHи запустите mvn используя mvn -X просто чтобы увидеть пользовательский settings.xml что mvn использует. Результат следующий (я в Windows 7 и запускаю команду в cmd.exe):

Maven все еще находит user.home Свойство, однако, я не установил такую ​​переменную среды. Чтобы убедиться в этом, я запускаю set Команда, чтобы увидеть все переменные среды, но не найти ничего о пути d:\Userfiles\xili\ который используется Maven в качестве user.home системное свойство. Кстати, в этом пути нет файла settings.xml, потому что я не поместил ни одного файла в этот путь.

Как мавен придумал такой путь как user.home?

1 ответ

Решение

Ответ здесь!

http://www.timehat.com/javas-user-home-is-wrong-on-windows/

Фактически, в Windows JVM использует PATH_TO_DESKTOP_FOLDER_AS_SET_IN_THE_REGISTRY в качестве ссылки для определения, где user.home,

user.home это просто родительская папка по указанному выше пути. Это не так, это не имеет ничего общего с HOME или же HOMEPATH переменная окружающей среды.

В исходном коде Maven должен быть такой код: System.getProperty('user.home'),

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