我有一个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.compgwt-mavenissuesdetail?id=88。(我有一个问题,改变pom以适应特定的操作系统)
简而言之:让本地仓库的路径尽可能的短。
"[email protected],2009年3月23日评论40对于 "GWT编译失败,原因是--输入行太长。"问题的修复方法如下。
C:\Documents and Settings\MahcineNameABC\.m2
从文件夹中复制settings.xml文件 apache-maven-2.0.8\apache-maven-2.0.8\conf
变成 C:\Documents and Settings\MahcineNameABC\.m2
在 设置.xml:
将标签改为 <localRepository>M:</localRepository>
. 现在你的m2 home是一个虚拟的M盘。
D:\maven-2.0.8\repository
C:\Documents and Settings\MahcineNameABC\.m2\repository
到 D:\maven-2.0.8\repository
subst M: D:\maven-2.0.8\repository
(帮助)现在一个虚拟的 M 驱动器将指向你的仓库。M2_REPO
值为M的长输入。cmd /e:32768
这将解决由于在classpath变量中的条目很长而导致的长输入的问题,至少在Win XP SP2中是这样。这些输入是结合评论#22和#7的内容进行测试的。
希望能帮到你
这在大多数情况下应该会有帮助(至少在我的情况下,直到项目结束)
这似乎是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的帖子。
如果你使用Intellij,在workspace.xml中有一个设置可以解决这个问题。 有一个 旧帖.
从2.5.0-rc1开始,GWT Maven插件有了一个新的选项:"genParam"。"genParam"。将这个选项设为false,可以避免这个问题。