2

我正在使用 Maven,它将本地存储库存储在用户主文件夹下。
我决定将我的用户配置文件从 移动C:\Users\DanyD:\Users\Dany以节省我的 SSD 磁盘空间。我还更改了 Windows 注册表中的几个键。
一切正常,但 Maven 仍将工件保存到C:\Users\Dany\.m2\repository.

知道如何在settings.xml.
但是有人可以解释 Maven 的行为吗?

PS
IntelliJ IDEA 还将其数据保存到C:\Users\Dany\.IntelliJIdea11.

UPD
System.getProperty("user.home");返回C:\Users\Dany

Windows 命令行中的UPD2
set USERPROFILE表示USERPROFILE=D:\Users\Dany

UPD3
问题是关于 Java 如何获取用户主文件夹位置,而不是关于如何设置 Maven 存储库位置

4

5 回答 5

2

在 Windows 上,Java 从注册表中获取 user.home 属性:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop 然后它会删除最后一个文件夹。

例如:%userprofile%\Desktop => %userprofile%

这(将)在 Java 8 中修复。

在此之前,解决方案是将其添加到环境变量中:
_JAVA_OPTIONS:-Duser.home=%HOMEDRIVE%%HOMEPATH%

或在命令行中:设置 _JAVA_OPTIONS=-Duser.home=%HOMEDRIVE%%HOMEPATH%

我在此页面的评论中看到了解决方案: http ://www.timehat.com/javas-user-home-is-wrong-on-windows/

于 2014-02-06T09:54:37.297 回答
1

我得到了这个问题。只是遇到完全相同的问题。我在这里找到了答案,然后我也找到了相关的错误条目

于 2012-11-20T15:34:26.173 回答
0

首先,您需要更新主文件夹中settings.xml中的<localRepository> 设置。

接下来,您需要更新M2_REPO环境变量以指向新位置。您可能还需要为单个Eclipse 项目设置它,方法是使用 maven 本身或从 Eclipse 设置中设置环境变量。

于 2012-11-18T21:04:47.407 回答
0

将 settings.xml 文件放入 D:\Users\Dany.m2\ 并将类似的内容放入您的 settings.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <localRepository>D:/WhatEverLocationYouWant</localRepository

</settings>
于 2012-11-18T16:23:30.467 回答
0

如果您在两个分区上都有 NTFS,您可以创建一个从 D:\Users\Dany 到 C:\Users\Dany 的符号链接。软件不会有任何区别。

于 2014-01-22T07:48:05.787 回答