我有一个包含大量jar文件依赖项的大型Java项目。当我尝试从Eclipse或Netbeans运行项目(使用exec)时,Maven抛出一个异常,结果是类路径上的条目数量过多(仅包括所需条目的2/3)。有没有人知道这个的解决方法? (除了构建一个可执行jar并从终端运行它。)是否可以“扩展”“classpath-buffer”-size?
答案 0 :(得分: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
如果JAR位于CLASSPATH文件夹中,您可以使用maven exec插件运行JAR,使用以下内容隐藏类路径:
mvn exec:exec [...] -Dexec.classpathScope="test"
我使用了-Dexec.classpathScope =“test”来使插件忽略依赖关系,只添加范围测试中的那些。
答案 1 :(得分:1)
Netbeans 6.10M1中修复了此问题。请看Bug 188864。如果你有一个旧版本,你仍然可以自己解决这个问题(你只需要在org-netbeans-modules-maven.jar中编辑一个xml文件)。
然后,不要忘记检查Maven最佳实践(http://wiki.netbeans.org/MavenBestPractices#Binding_Maven_goals_to_IDE_actions),其中解释了如何将maven目标绑定到IDE操作。
此致
马赫
答案 2 :(得分:0)
在Java 6中(我希望您使用),您可以在类路径条目中使用通配符。要获得准确的语法,请检查此页面Setting the classpath,然后搜索“Understanding the class path and package names
”搜索右侧部分。
或者您尝试通过将所有必需的jar放在具有短路径的单个文件夹中来缩短路径。例如C:\jars\