命令行太长了,在java项目中使用maven的时候

问题描述 投票:6回答:4

我有一个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.
java maven command
4个回答
7
投票

我在这里找到了另一个变通方法 http:/code.google.compgwt-mavenissuesdetail?id=88。(我有一个问题,改变pom以适应特定的操作系统)

简而言之:让本地仓库的路径尽可能的短。

"[email protected],2009年3月23日评论40对于 "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

    设置.xml:

  3. 将标签改为 <localRepository>M:</localRepository>. 现在你的m2 home是一个虚拟的M盘。

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

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

希望能帮到你

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


2
投票

这似乎是gwt-maven的一个已知问题。在 gwt-maven 的谷歌群组里有一个讨论。windows命令行长度限制的解决方法

问题似乎是source被包含在测试classpath上,因此你在运行surefire时出现了问题。

解决办法是排除sources的依赖性,把它变成系统范围(来自上面的线程):

    <dependency> 
        <!-- non existant artifact ID required (-source) maven bug?? --> 
        <artifactId>myproject-rpc-source</artifactId> 
        <groupId>${project.groupId}</groupId> 
        <version>${project.version}</version> 
        <classifier>sources</classifier> 

        <!-- hack below as maven only incudes provdied in test scope --> 
        <scope>system</scope> 
        <systemPath>${basedir}/../rpc/target/myproject-rpc-${project.version}-sources.jar</systemPath> 
    </dependency> 

但我在进行这个操作之前,会充分阅读和理解google group的帖子。


1
投票

如果你使用Intellij,在workspace.xml中有一个设置可以解决这个问题。 有一个 旧帖.


-1
投票

从2.5.0-rc1开始,GWT Maven插件有了一个新的选项:"genParam"。"genParam"。将这个选项设为false,可以避免这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.