2009-07-01 80 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

相關問題