java - 如何解决Maven exec插件: classpath too long error?

标签 java maven-2 classpath maven-plugin

我有一个包含大量 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/

相关文章:

java多线程面试 : sleep, wait, notify, yield - 哪个是回调?

java - 创建名称为 'sessionFactory' 的 bean 时出错 : MalformedParameterizedTypeException

java - 在 Python 中测试时加载不同的资源

java - 错误: Could not find or load main class ExcelReadWrite

java - 是否可以使用 iText 以编程方式将 'Open a web link action' 操作添加到 acroform 字段?

java - 基于一个变量显示多个jPanel

java - 如何求出随机输入的数字的最小、最大、平均值、总和?

java - 从 Maven 中的依赖项中排除类

maven-2 - 如何将 maven 1 存储库与 maven 2 一起使用?

java - 通过 ant 从 eclipse 运行小程序