come from : http://www./topic/240424 用了Maven,,所需的JAR包就不能再像往常一樣,自己找到并下載下來,,用IDE導進去就完事了,,Maven用了一個項目依賴 (Dependency)的概念,用俗話說,,就是我的項目需要用你這個jar包,,就稱之為我的項目依賴你這個包,換句話說,,你這個JAR包就是我這個項目的Dependency,。 于是很多人在剛用Maven的時候,就會在加Dependency時栽跟頭,,明明我手頭上就有需要的JAR嘛,,它偏不讓我用,什么道理,,跟著就是生悶氣,,少點耐性的,就會說Maven怎么怎么不爽,,其實,,如果你理解了Maven的一些機制,,一些配置及管理的流程,就會覺得它其實很爽,。 我暫且不談Maven的長篇概念(其實我也還很多很多不懂),,我先給大家介紹一個簡單的查找方法,讓你很快地找到所需的Dependency,,并配置到你的pom.xml里面去,。 最快捷方法: GOOGLE搜索:maven 你需的jar包名稱 repository 比如我要做EJB,我要找jboss-j2ee.jar的Dependency 就在GOOGLE里輸入 maven jboss-j2ee repository 在結果的第一條,,進去你就可以在頁面里找到下面這段 <dependency> 你把上面這段代碼貼到你的Maven項目的pom適當的位置去,,然后運行maven,Maven就會自動下載所需的jar及相關的pom信息,,你不用管它,,Maven會幫你下載,并放到適當的位置,。 我再舉幾個查找實例,讓大家熟悉一下怎么搜索 下面我要找 struts.jar 在GOOGLE里輸入 maven struts repository 就很快可以找到下面這段代碼 <dependency> 我還要找hibernate 在GOOGLE輸入 maven hibernate repository 在結果的第一條記錄出現(xiàn)了很多個不同的hibernate鏈接(因為有很項目用了hibernate嘛)我們就選用org.hibernate的,,看起來專業(yè)點嘛,,呵呵 <dependency> 好了,SSH可不能少了中間那個S,,Spring嘛 在GOOGLE里輸入 maven spring repository 在第一個結果進去,,我們這次選擇org.springframework的, <dependency> 其它的我就不一一舉例了,,大家自己試試,,其實這個方法可以解決大多數常用包的Dependency查找,不用專門記那些repository下載站的網址嘛,,不過始終這是非正規(guī)做法,,其它要想更好地找到想要的Dependency,還是得了解maven repository是啥玩意,,它的local repository庫概念,,以及怎樣建立自己自己repository服務器(這個我還不太熟,這里就不講了,,大家自己去其它地方找相關資料,,免得被我誤導了) Maven的repository,說白了就是dependency的倉庫,,它按照一定的規(guī)則將dependency存放起來,,以作緩存,如果本機的 repository找不到某個dependency,,它就會自動去找到網上其它相關聯(lián)的repository,,找到的話將其下載至本地,,那么下次它就不再去其它地方下載了,直接從本地獲取,。 本地的repository在哪可找到,? 默認repository地址:當前用戶的私人目錄 + .m2 如果你設置了Maven目錄下的conf/setting.xml的local repository屬性,則不再是默認的repository地址,,而使用你指定的地址,。 找到下面這段,將它復制一份,,放到注釋外面,,改成你自己的repository路徑即可 <localRepository>c:\mvn repository\</localRepository> Maven按什么規(guī)則去存放Dependency? 下面我們來拿hibernate來作例子,以介紹在Maven運行并下載到所需的Dependency后怎么緩存到本地的repository 下面這個是hibernate的Dependency配置 <dependency> 它被下載后將會被存放至 %repository%\org\hibernate\hibernate\3.2.6.ga\hibernate-3.2.6.ga.jar 其中%repository%就是你本地的repository目錄,! 不知大家看出來了沒有,,它是按你的Dependency的groupid + artifactid + version,然后以點號作分隔,,來建立文件夾的,,最后建立的文件夾如下 |--org |--hibernate |--hibernate |--3.2.6.ga |--hibernate-3.2.6.ga.jar 可能會有些人會問那個jar包的名字是怎么來的,細心的人或許早己觀察出來了,,沒錯,,就是artifactId + "-" + version + ".jar"。 好了,,下面我們按這個規(guī)則去找一下另外一個Dependency放在哪吧 <dependency> <groupId>com.google.gwt</groupId> <artifactId>gwt-servlet</artifactId> <version>1.4.61</version> </dependency> 我們現(xiàn)在根據之前所講的規(guī)則,,先進入你的本地repository目錄,然后進入com目錄,,再進入google目錄,,再進入gwt目錄,再進入 gwt-servlet目錄,,再進入1.4.61目錄,,跟著你就可以發(fā)現(xiàn)一個名叫gwt-servlet-1.4.61.jar和其它一些文件了大家試試看吧!《注意:你在首次使用這個Dependency時,,一定要運行Maven,,讓它去下載到需要的包,下載成功后你才能按上面的步驟找到,,不然你找不到別亂罵我,,你都沒下載的話,肯定找不到了:( 》 在你掌握這個技巧之后,,有很多時候你可以根據所需包的package路徑,,自己摸它的Dependency,這個就不詳談了,,總之你了解后,,找Dependency不會成問題的,,非常簡單的事 這個時候,就有另一些用戶會提出疑問,,我要用的jar包是我自己開發(fā)的,,或是朋友,或是網友傳來的,,在網上根據找不到,,怎么在Maven里面使用它們呢? 其實辦法是肯定有的,而且也不難,,也是常常要用到的,,下面我來簡單介紹一下幾個方法: 前提,肯定是你先寫到pom里面去,,組織隨你寫,,artifact 寫你的jar名,或者隨便寫,,version你也寫上你想要的,,如 <dependency> <groupId>com.mydomain.ooooo</groupId> <artifactId>my-jar</artifactId> <version>100.1.1</version> </dependency> 一、用好你的IDE,! 現(xiàn)在大家用的IDE,,無非就是Eclipse,或者netbeans,,或是JBuilder,據我所知,,現(xiàn)在大部份人都向前兩者轉移,,這些IDE都提供了對Maven的支持,不過通常都需要你裝插件才能打開并使用Maven的項目,,怎么裝maven插件我就不介紹了,,大家自己上網找找別人寫的文章吧。在你裝好插件后,,通常會有一個libraies目錄,,里面列出你項目要用到的jar包,你右鍵點擊本地還沒有添加進去的jar包,,選擇本地安裝(Manually install artifact),,選中你那個特殊的jar包,然后IDE會自動調用maven插件完成整個安裝配置過程,,下次你就不再這樣子做了,,因為你本地 repository己經有了。 二,、手動將jar包放到本地repository里面去 根據先前介紹的maven repository存放規(guī)則,,自己建好目錄,,改好jar的文件名,自己拷進去,,如 進到你本地的repository目錄 建一個com文件夾,,點進去 再建一個mydomain文件夾,點進去 再建一個ooooo文件夾,,點進去 再建一個my-jar文件夾,,點進去 再建一個100.1.1文件夾,點進去 再把你的jar包,,改名為my-jar-100.1.1.jar,,放到100.1.1文件夾里面去, 然后運行你的maven項目,,看看它會不會build成功,,事實上如果你之前做的文件夾沒錯,大小寫沒問題,,或沒其它小失誤,,你的項目就可以正常用到你自己的jar包了 三、直接到http://repo1./maven2/ 查找 不過這也需要你知道m(xù)aven repository的存放規(guī)則才知道怎么在網站上找,,找到你還得自己寫dependency的配置代碼,,本人不常來這里找。不過各有所好,,大家選擇合適自己的 |
|