Maven3 system.property user.home vs 环境变量 HOME

Maven3 system.property user.home vs environment variable HOME

Maven 中的系统属性似乎有问题。系统属性好像和环境变量不对应。

情况是我想更改用户特定 settings.xml 文件的绝对位置,如 Maven 文档所述

If you need to create user-specific settings from scratch, it’s easiest to copy the global settings from your Maven installation to your ${user.home}/.m2 directory

这意味着更改用户特定文件的绝对位置的唯一方法是更改​​ user.home 属性。但似乎这不完全是 HOMEHOMEPATH 环境变量。其实我把HOMEHOMEPATH等环境变量都删掉了,运行 mvn using mvn -X 就是为了看看那个mvn的user-specific settings.xml使用。结果如下(我在 Windows 7 中 运行 cmd.exe 中的命令):

Maven还是找到了一个user.home属性,但是,我还没有设置这样的环境变量。为了验证这一点,我然后 运行 set 命令查看所有环境变量,但没有找到关于路径 d:\Userfiles\xili\ 的信息,该路径被 Maven 用作 user.home 系统 属性。对了,这个路径下没有settings.xml文件,因为我没有在这个路径下放任何文件。

maven 是如何找出像 user.home 这样的路径的?

答案就在这里!

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

事实上,在Windows中,JVM使用PATH_TO_DESKTOP_FOLDER_AS_SET_IN_THE_REGISTRY作为reference 以确定 user.home.

在哪里

user.home只是上述路径的父文件夹。就是这样,这与 HOMEHOMEPATH 环境变量无关。

在Maven的源码中,应该有System.getProperty('user.home').

这样的代码