我正在尝试从源代码构建 hadoop,如本文所述。构建 Apache common 时,一切都失败并显示以下错误消息:command line too long
.
所以,这是我尝试过的(我会在尝试更多时更新):
- 正如在这个
Stackoverflow 答案中所说,克服这个错误的方法是尽可能缩短路径。因此,我将存储库文件从
C:\user_name\.m2\repository\
另一个目录剪切并创建了一个空驱动器,并将其指向我已将文件移动到的这个新目录,就像这样subst M: D:\maven-2.0.8\repository
,并将<localRepository>M:</localRepository>
“settings.xml”中的标记从C:\apache-maven-2.0.8\conf
指向M:
. 完成所有这些之后,我重新启动系统并尝试再次构建 hadoop。但是,正如我从错误中看到的那样,maven 仍然将包下载到C:\Users\user_name\.m2\repository\
,而不是M:
并且错误的command line too long
错误仍然存在。 - 为了尽可能缩短路径,我在其中创建了一个目录,
C:\mrepo
并将该目录符号链接到C:\user_name\.m2\repository\
如下所示:mklink /J C:\mrepo C:\Users\.m2\repository
. 完成所有这些之后,我重新启动系统并尝试再次构建 hadoop。但是,正如我从错误中看到的那样,maven 仍然将包下载到C:\Users\user_name\.m2\repository\
,而不是M:
并且错误的command line too long
错误仍然存在。
编辑1:
- 我还设置了一个名为
M2_HOME
value的环境变量M:\
。并在我的 \conf\settings.xml: 中进行了更改<localRepository>${M2_HOME}</localRepository>
。问题仍然存在。
如何解决此问题并成功构建 hadoop?