2016-07-27 26 views
0

我是Java新手,我想用Maven構建JUNG 2.2庫,因爲這似乎是構建它的標準方法。我以前從未使用過Maven,但安裝並運行mvn clean install並不困難。現在,JUNG似乎有6個子包(API,實現,算法,I/O,可視化和樣本),每個包都有它的目錄(例如,jung-api是API包的目錄)。目標install會生成一些Java .class文件,並將它們放入6個目錄中每一個的target/classes/目錄中。用Maven構建JUNG庫

我很困惑下一步做什麼爲了使用庫:我只需要添加jung目錄路徑到我的CLASSPATH變量在shell中?但是後來我不得不導入jung-api.target.classes.edu.uci.ics.jung.graph.*,它不僅非常長,而且還有一個「 - 」,Java編譯器不希望包名!甚至當我繞過「 - 」的問題,我得到一個運行時錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Supplier 

我使用的是OS X 10.9.5的javac 1.8.o_91。

+0

'mvn clean install'應該將JAR安裝在您本地的Maven倉庫中。在任何情況下(當你只是做'mvn clean package'時),'target'目錄應該包含JAR。如果有*無* JAR,那麼構建可能會出現問題。 (如果是這樣的話:Maven輸出中是否隱藏了任何錯誤消息?)。在任何情況下,它都應該**不是必須的,以便用'jar -xf'或其他方式手動地將JAR拼湊在一起...... – Marco13

+0

我希望你能原諒我,但我甚至不知道在哪裏找到我的本地Maven倉庫。或者,也許這是我家的新的'.m2'目錄(它包含相同的JAR和其他東西)。 – Giorgio

+0

是的,就是這樣。任何使用Maven編譯的庫所需的所有依賴項都將被複制到那裏。基本上,'mvn clean package'只在本地生成JAR(到'target'文件夾中),而'mvn clean install'會將您新建的JAR複製到您的Maven repo中。 – Marco13

回答

0

我找到的解決方案是jar -xfjung-samples目錄的.jar文件的每一個,然後將通過jar中,我加入到我的CLASSPATH變量的地方提取的所有目錄。至少這似乎工作。