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
属性。但似乎这不完全是 HOME
或 HOMEPATH
环境变量。其实我把HOME
和HOMEPATH
等环境变量都删掉了,运行 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
只是上述路径的父文件夹。就是这样,这与 HOME
或 HOMEPATH
环境变量无关。
在Maven的源码中,应该有System.getProperty('user.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
属性。但似乎这不完全是 HOME
或 HOMEPATH
环境变量。其实我把HOME
和HOMEPATH
等环境变量都删掉了,运行 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
只是上述路径的父文件夹。就是这样,这与 HOME
或 HOMEPATH
环境变量无关。
在Maven的源码中,应该有System.getProperty('user.home')
.