4

我有一个带有大量 jar 文件依赖项的大型 Java 项目。当我尝试从 Eclipse 或 Netbeans 运行项目(使用 exec)时,Maven 抛出异常,结果证明类路径上的条目数量过多(仅包含所需条目的 2/3)。有谁知道这个的解决方法?(除了构建一个可执行的 jar 并从终端运行它。)是否可以“扩展”“类路径缓冲区”大小?

4

3 回答 3

3

这是一个 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" 使插件忽略依赖项并仅添加范围测试中的依赖项。

于 2009-07-01T18:06:59.703 回答
1

此问题已在 Netbeans 6.10M1 中修复。请查看错误 188864。如果您有旧版本,您仍然可以自己修复此问题(您只需在 org-netbeans-modules-maven.jar 中编辑一个 xml 文件)。

然后,不要忘记查看 Maven 最佳实践 ( http://wiki.netbeans.org/MavenBestPractices#Binding_Maven_goals_to_IDE_actions ),其中解释了如何将 Maven 目标绑定到 IDE 操作。

问候,

马赫

于 2010-09-23T15:39:32.287 回答
0

在 Java 6(我希望你使用它)中,你可以在类路径条目中使用通配符。对于确切的语法检查这个页面设置类路径并通过搜索“ Understanding the class path and package names”搜索到正确的部分。

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

于 2009-07-01T15:12:02.070 回答