我正在尝试根据this article中的说明从源构建hadoop。在构建Apache common时,一切都会失败,并显示以下错误消息:command line too long
因此,这是我尝试过的方法(尝试更多时,我将对其进行更新):

  • 如在此所说
    Stackoverflow answer,解决此错误的方法是尽可能地缩短路径。因此,我将存储库文件从C:\user_name\.m2\repository\剪切到另一个目录,并创建了一个空驱动器,并指向该新目录,我已经将文件移动到了这个目录subst M: D:\maven-2.0.8\repository,并将“settings.xml”中的<localRepository>M:</localRepository>标记从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的环境变量,其值为M:\。并在我的\ conf \ settings.xml中进行了更改:<localRepository>${M2_HOME}</localRepository>。这个问题仍然存在。

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

    最佳答案

    您在使用IntelliJ吗?

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

    您可以在this blog post中找到有关它的更多信息。

    关于maven - 在Windows 10中从源代码构建hadoop时,Maven上的命令行太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61825283/

    10-12 23:03