我有一个包含大量 jar 文件依赖项的大型 Java 项目。当我尝试从 Eclipse 或 Netbeans 运行项目(使用 exec)时,Maven 抛出一个异常,结果证明类路径上的条目数量过多(仅包含 2/3 的所需条目)。有谁知道解决方法? (除了构建一个可执行 jar 并从终端运行它。)“扩展”“类路径缓冲区”大小是否可行?
最佳答案
这是一个 Maven exec 插件错误,记录在 MEXEC-68 中,记者打了个补丁,希望早日解决。
一种解决方法是使用 maven-jar-plugin 的此配置将类路径添加到 list 文件,将依赖项添加到文件夹中,然后将该文件夹添加到 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>
这将添加到 list 中,例如:
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"使插件忽略依赖项并仅添加范围测试中的依赖项。
关于java - 如何解决Maven exec插件: classpath too long error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067563/