问题
I have maven-gwt project. It has lots of dependencies which is usual by a large project. I think it is at the limit with creation of classpath. I found some information about the limitation. Allowed is 1023 Character. But I need the libraries.
I receive the following error when i want to package my project mit Maven.
The command line is too long.
How can I get around the problem.?
Here is the expanded error in 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.
回答1:
I found another workaround here http://code.google.com/p/gwt-maven/issues/detail?id=88 (I have problem with changing pom to fit a specific OS)
In short: make path to local repository as short as possible.
" Comment 40 by gaurav.a...@gmail.com, Mar 23, 2009 One of the fix to the problem of "GWT compilation fails due to- The input line is too long." is as follows:
- Change m2(maven) repository. You might have your maven
repository at:
C:\Documents and Settings\MahcineNameABC\.m2 Copy settings.xml file from folder
apache-maven-2.0.8\apache-maven-2.0.8\confintoC:\Documents and Settings\MahcineNameABC\.m2In settings.xml:
change the tag as
<localRepository>M:</localRepository>. Now your m2 home is a virtual M drive.- Create a repository folder as
D:\maven-2.0.8\repository - Cut/Copy all the files/folders from
C:\Documents and Settings\MahcineNameABC\.m2\repositorytoD:\maven-2.0.8\repository - Map local drive: open command prompt and execute (to create the
virtual drive):
subst M:
D:\maven-2.0.8\repository. Now a virtual M drive will point to your repository. - Set environment variable M2_REPO with value M:
- To enable long inputs, on command prompt execute:
cmd /e:32768
This would fix the problem of long inputs due to very long entries in classpath variables, at least in Win XP SP2. The inputs are combined and tested from comment#22 and #7.
Hope it helps!
This should help in most cases (and 'til the end of project - at least in my case)
回答2:
This seems to be a known problem with gwt-maven. There is a discussion on the gwt-maven google groups: Workaround for windows command line length limit
The problem seems to be that the sources are included on the test classpath, hence you're getting problems when you're running surefire:
The workaround is to exclude the sources dependency, make it system scope (from the above thread):
<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>
but I would fully read and understand the google groups thread before proceeding with this.
回答3:
If you are using Intellij there is a setting in workspace.xml that takes care of this issue. There is an existing post about this.
回答4:
From 2.5.0-rc1 the GWT Maven plugin has a new option: "genParam". Set this param to false to aviod this problem.
来源:https://stackoverflow.com/questions/8181098/the-command-line-is-too-long-in-java-project-with-maven