2011-10-06 18 views
11

我已將JAR複製到src\main\webapp\WEB-INF\lib
我使用eclipse。如果我將JAR逐個添加到Project-> Java Build Path-> Add Jars,那麼我執行Project-> Maven-> Update Project Configuration,它們被Maven刪除。 Eclipse顯示錯誤,其中包含「xxx無法解析」。Maven:如何在Eclipse中包含罐中的jar,這些在倉庫中不可用?

Env: 
Eclipse Java EE IDE for Web Developers. 
Version: Indigo Service Release 1 
Build id: 20110916-0149 

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717 

注意:我不想創建自己的Maven存儲庫。它只會被使用一次。
我該如何繼續?

回答

18

並非所有庫都可以在公共Maven存儲庫中找到,例如您自己的庫或專有庫。無論如何,首先你可以search the Maven Repository,也許有些人在那裏。

如果他們真的不存在,而你不想安裝NexusArtifactory,您可以選擇以下兩種方法之一:

  • 安裝的罐子在你的本地倉庫緩存,無需要創建一個特殊的存儲庫。請參閱instructions on mkyong

  • 另一種方法是使用系統依賴關係,您只需在文件系統中放置一個到達Jar的路徑。這是一個不太推薦的方法,但如果你真的想要它會起作用。這裏是official documentation

+0

其實,這是一個非常舊項目中有太多的JAR。我不願意在我的本地存儲庫中安裝JAR。 – fjjiaboming

+0

然後您可以使用系統依賴關係。我已將它添加到答案中。 – stivlo

+0

我真的不喜歡方法2.首先,一個jar到一個denacecy;其次,太多JAR我需要手動添加依賴關係一個接一個。因此,如果沒有更好的方法,我必須採取方法1逐個安裝本地存儲庫。謝謝! – fjjiaboming

2

添加這個a Systems Dependency


如果你想添加這個(這使用jquantlib爲例)到本地Maven的回購使用:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar 

爲了做到這一點,我使用批處理文件

@echo off 

cd lib 

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar" 
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar" 

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar" 

您可以在其他系統上使用類似的腳本文件。

0

我相信系統依賴性方法不應該被使用,除非你沒有任何其他選擇,那是因爲你在這裏丟失了整個「構建可移植性的東西」。 當然你可以將你的罐子放在你的源代碼控制系統中與你的項目源文件一起存儲,但我認爲它不是一個好方法...

只使用安裝:install-file不夠好 - 這確實會將jar以適當的格式部署到本地存儲庫中,但是當您移動到另一臺計算機並開始在那裏構建項目時會發生什麼? 您需要再次進行此操作。所以,如果你不想安裝nexus/artifactory(這是最好的解決方案,我相信),你可能應該創建另一個倉庫(只在一些服務器的文件系統中),然後部署那裏的jar包(你可以使用mvn install:install-file,正如這裏所建議的那樣,然後只複製整個樹)。現在你可以配置Apache Web服務器並通過http訪問所有jar文件夾。我不相信它比nexus/artifactory方法更好,但如果你熟悉apache web服務器,可能會更容易些。 爲了讓你的maven知道這個新的倉庫,你需要編輯%MAVEN_HOME%\ conf \ settings.xml文件

0

要添加不在本地倉庫中的外部JAR文件,只需右鍵點擊你的主要源碼文件夾並從構建路徑菜單中選擇:「configure build path」,然後導航到庫選項卡並單擊「添加外部JAR文件」。接下來,找到您想要添加爲庫的JAR(或zip)文件,然後單擊確定。

恭喜你,你已經成功添加一個外部JAR(或zip)到您的構建路徑,現在您可以導入在你的項目中的JAR文件中的任何類,而不會引發錯誤Picture How-To :) http://hostthenpost.org/uploads/541be8420657320c74489ff8d456ad08.png

相關問題