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')
,