命令行太长。 在与maven的java项目中

我有maven-gwt项目。 它有很多依赖项,这是大型项目常用的。 我认为它在创建classpath时处于极限。 我找到了一些有关限制的信息。 允许是1023字符。 但我需要这些库。

当我想打包我的项目mit Maven时,我收到以下错误。

 The command line is too long. 

我怎样才能解决这个问题。

以下是Jenkins中的扩展错误:

 [INFO] --- maven-surefire-plugin:2.5:test (default-test) @ MyProject --- [INFO] Surefire report directory: C:\Documents and Settings\User\.jenkins\workspace\Myproject\target\surefire-reports The command line is too long. The command line is too long. [ERROR] There are test failures. 

我在这里找到了另一个解决方法http://code.google.com/p/gwt-maven/issues/detail?id=88 (我在更改pom以适应特定操作系统时遇到问题)

简而言之:尽可能缩短本地存储库的路径。

“评论40由gaurav.a … @ gmail.com,2009年3月23日”由于输入线太长而导致GWT编译失败的问题之一。“如下:

  1. 更改m2(maven)存储库。 您可能在以下位置拥有maven存储库: C:\Documents and Settings\MahcineNameABC\.m2
  2. 将settings.xml文件从文件夹apache-maven-2.0.8\apache-maven-2.0.8\conf复制到C:\Documents and Settings\MahcineNameABC\.m2

    settings.xml中

  3. 将标记更改为M: 。 现在你的m2家是一个虚拟M驱动器。

  4. 将存储库文件夹创建为D:\maven-2.0.8\repository
  5. 将所有文件/文件夹从C:\Documents and Settings\MahcineNameABC\.m2\repository剪切/复制到D:\maven-2.0.8\repository
  6. 映射本地驱动器:打开命令提示符并执行(以创建虚拟驱动器):subst M: D:\maven-2.0.8\repository 。 现在,虚拟M驱动器将指向您的存储库。
  7. 设置值为M的环境变量M2_REPO:
  8. 要启用长输入,请在命令提示符下执行: cmd /e:32768

这将解决由于类路径变量中的条目很长而导致长输入的问题,至少在Win XP SP2中是这样。 输入结合并在评论#22和#7中进行测试。

希望能帮助到你!

这在大多数情况下应该有所帮助(直到项目结束 – 至少在我的情况下)

这似乎是gwt-maven的一个已知问题。 有关gwt-maven google组的讨论: Windows命令行长度限制的解决方法

问题似乎是源代码包含在测试类路径中,因此当你运行surefire时会出现问题:

解决方法是排除源依赖项,使其成为系统范围(来自上面的线程):

    myproject-rpc-source ${project.groupId} ${project.version} sources  system ${basedir}/../rpc/target/myproject-rpc-${project.version}-sources.jar  

但在继续这个之前,我会完全阅读并理解谷歌小组的主题。

如果您使用的是Intellij,则workspace.xml中有一个设置可以解决此问题。 有关于此的现有post 。

从2.5.0-rc1开始,GWT Maven插件有一个新选项:“genParam”。 将此参数设置为false以避免此问题。