2009-07-01 44 views
2

我有一个大型的Java项目与大量的jar文件依赖项。当我尝试从Eclipse或Netbeans运行项目(使用exec)时,Maven会抛出一个异常,这将导致类路径中的条目数量过大(仅包含所需条目的2/3)。有没有人知道这个解决方法? (除了构建一个可执行的jar并从终端运行它。)是否可以“扩展”“classpath-buffer”-size?如何解决Maven exec插件:classpath太长错误?

回答

2

这是一个Maven Exec插件的错误,它在MEXEC-68记录,记者创造了一个补丁,所以我希望它会很快得到解决。

一种解决方法是使用maven-jar-plugin的此配置将类路径添加到清单文件,将相关性添加到文件夹并将该文件夹添加到CLASSPATH envvar。

例如:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     ... 
     <configuration> 
      <archive> 
      <manifest> 
       <addClasspath>true</addClasspath> 
      </manifest> 
      </archive> 
     </configuration> 
     ... 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

这将添加到清单类似:

Class-Path: plexus-utils-1.1.jar commons-lang-2.1.jar 

如果罐子在CLASSPATH文件夹,你可以使用Maven Exec插件hidding的运行JAR classpath类似于:

mvn exec:exec [...] -Dexec.classpathScope="test" 

我使用了-Dexec.classpathScope =“test”to mak e插件忽略依赖关系并在范围测试中添加那些依赖关系。

0

在Java 6中(我希望你使用它),你可以在类路径条目中使用通配符。准确语法检查此页Setting the classpath并通过搜索“Understanding the class path and package names”搜索正确的部分。

或者您尝试通过将所有必需的罐子放在具有短路径的单个文件夹中来缩短路径。例如C:\jars\

+0

我已经缩短了路径为C:\ JR \没有运气,仍然多的exec命令 – 2009-07-02 05:26:45

相关问题