2016-11-08 536 views
-1

我一直在努力理解Maven(版本3.1.1)在Windows 7中尋找本地settings.xml文件的位置。有人可以解釋Maven在做什麼,因爲它會在執行任何mvn命令期間記錄下面的行-X開關?Maven在哪裏查找本地settings.xml文件?

[DEBUG] Reading user settings from ??? 

它檢查一個環境變量來構造路徑嗎?如果是這樣,哪一個?我問這個,因爲我十分驚訝地看到,它正在檢查的路徑

\\computername\userName\.m2\settings.xml 

,而不是我的C盤上的預期位置,這是

C:\Users\userName\.m2\settings.xml 
+0

https://maven.apache.org/settings.html – Tunaki

+0

@Tunaki該文檔是我查看的第一個地方,表示它應該查看$ {user.home},它在Windows 7上應該是%用戶資料%。當我回顯該系統變量時,它會顯示C驅動器上的預期路徑。由於該路徑不是Maven正在使用的路徑,因此該文檔對回答此問題沒有幫助。這就是爲什麼我要求對SO進行進一步澄清。 – JellyRaptor

+0

然後,這不是一個Maven問題,它嚴格依賴於'$ {user.home}',這就是它的外觀,但是一個Java問題,或者你的電腦上可能存在註冊表錯誤,請參閱[this](http ://stackoverflow.com/questions/2134338/java-user-home-is-being-set-to-userprofile-and-not-being-resolved)和[this](http://stackoverflow.com/questions/ 16889940 /在窗口-7-如何-不-Java的JVM設置用戶家用系統屬性)。 – Tunaki

回答

0

由於Tunaki指出, Maven使用Java系統屬性$ {user.home},該屬性並不總是解析爲我們預期的路徑。

要強制$ {user.home}是一個不同的路徑,我必須添加環境變量「_JAVA_OPTIONS」並賦予其值「-Duser.home =%UserProfile%」,這是我認爲的路徑它應該一直在尋找。