1

我正在尝试从源代码构建 hadoop,如本文所述。构建 Apache common 时,一切都失败并显示以下错误消息:command line too long.

所以,这是我尝试过的(我会在尝试更多时更新):

  1. 正如在这个 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错误仍然存​​在。
  2. 为了尽可能缩短路径,我在其中创建了一个目录,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:

  1. 我还设置了一个名为M2_HOMEvalue的环境变量M:\。并在我的 \conf\settings.xml: 中进行了更改<localRepository>${M2_HOME}</localRepository>。问题仍然存在。

如何解决此问题并成功构建 hadoop?

4

2 回答 2

0

如果您想将.m2目录设置为明确的内容,您可以通过覆盖默认值来实现。

  • 所有用户:编辑\conf\settings.xml全局配置文件。localRepository将键的值更改为本地存储库缓存的绝对路径。

  • 您的用户:我认为您应该能够M2_HOME在用户设置中设置环境变量。

于 2020-05-16T01:38:17.130 回答
0

你在使用IntelliJ吗?

因为在 IntelliJ 中,您有一些选项可以缩短命令行。转到运行/调试配置。缩短命令行,您可以尝试使用类路径文件选项。

您可以在此博客文章中找到有关它的更多信息。

于 2020-05-15T21:10:15.513 回答