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

时间:2015-09-23 21:17:16

标签: maven environment-variables system-properties

Maven中的系统属性似乎存在问题。系统属性似乎与环境变量不对应。

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

  

如果您需要从头开始创建用户特定的设置,那就是   最简单的方法是将Maven安装中的全局设置复制到   你的$ {user.home} /。m2目录

这意味着更改用户特定文件的绝对位置的唯一方法是更改​​user.home属性。但似乎这不是HOMEHOMEPATH环境变量。实际上,我删除了所有环境变量,例如HOMEHOMEPATH,并使用mvn -X运行mvn只是为了查看mvn使用的特定于用户的settings.xml。结果如下(我在Windows 7中,我在cmd.exe中运行命令):

enter image description here

Maven仍然找到user.home属性,但是,我没有设置这样的环境变量。为了验证这一点,我然后运行set命令来查看所有环境变量,但没有找到Maven用作d:\Userfiles\xili\系统属性的路径user.home。顺便说一句,此路径中没有settings.xml文件,因为我没有在此路径中放置任何文件。

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

1 个答案:

答案 0 :(得分: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。< / p>

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

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