Maven 手動添加 JAR 包到本地倉庫【轉】

來源:互聯網
上載者:User

標籤:tor   遠程   第一個   接下來   不同   執行命令   fan   資訊   關鍵字   

Maven 確確實實是個好東西,用來管理項目顯得很方便,但是如果是通過 Maven 來遠程下載 JAR 包的話,我宿舍的頻寬是4兆的,
4個人共用,有時候用 Maven 來遠程下載 JAR 包會顯得很慢,一般我發現下載速度不明顯的時候,我就 Ctrl + C 來終止它的下載。
然後改用手動來下載,因為用迅雷一類的工具來下載會快很多。我機子上 Maven 的本地倉庫的很多 JAR 包我都是手動下載的。
手動下載的話就會帶來一個問題,就是,怎麼樣手動將下載下來的 JAR 包添加到 Maven 的本地倉庫。關於這個,網上也有很多資料。
我說下我的做法。
首先,
推薦幾個好的 Maven 常用倉庫網址:
http://mvnrepository.com/
http://search.maven.org/
http://repository.sonatype.org/content/groups/public/
http://people.apache.org/repo/m2-snapshot-repository/
http://people.apache.org/repo/m2-incubating-repository/

第一個是我最常用的,然後是第二個,然後是第三個,最後兩個是 Apache 的私人倉庫,我還沒用過,不過感覺應該還可以吧...
接下來,還是一貫的作風,使用通俗易懂的方式來解說:

如果你看過我的上一篇:Spring郵件服務之Html:Maven + Spring SMTP Mail With Html 文章,裡面需要用到一個
spring-context-support-3.1.0.RELEASE.jar 的 JAR 包,我把它安裝到本地倉庫的時候把圖截了下來,順便寫了這篇文章,
供有需要的網友參考。
首先,到 http://mvnrepository.com/ 這個網,在搜尋欄中輸入你要搜尋的 JAR 包的關鍵字來搜尋,下面直接貼圖:

@1圖


@2


@3


以 spring-context-support-3.1.0.RELEASE.jar 為例,在 @3圖中已經給出這個 jar 包的 groupId,artifactId,version資訊,
手動安裝的時候這些資訊不要改,否則 Maven 項目移植的話,jar 包下載就會失敗。順便把這資訊帖下面,方便對照:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>3.1.0.RELEASE</version>
</dependency>


Maven 安裝 JAR 包的命令是:

mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar


例如:
我下載的這個 jar 包是放到了 D:\mvn 目錄下(D:\mvn\spring-context-support-3.1.0.RELEASE.jar)
那麼我在 cmd 中敲入的命令就應該是:

mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0.RELEASE.jar -DgroupId=org.springframework -DartifactId=spring-context-support -Dversion=3.1.0.RELEASE -Dpackaging=jar

斷行符號,顯示安裝成功:



 或者
原則上Maven的設計是不需要這麼做的,因為pom.xml中依賴的jar包會自動實現從中央倉庫下載到本地倉庫。但是公司設計了一個setting,如果本地倉庫沒有,就去setting指定的url中下載jar包,如果還沒有就報錯。
考慮到setting中url的jar包比較老,如果需要用最新的,則需要將jar包手動下載到本地倉庫。

比如我下載了
lucene-queryparser-4.6.1.jar

怎麼添加到本地倉庫呢?
步驟:
1.cmd命令進入該jar包所在路徑
2.執行命令
mvn install:install-file -Dfile=lucene-queryparser-4.6.1.jar -DgroupId=org.apache.lucene -DartifactId=lucene-queryparser -Dversion=4.6.1 -Dpackaging=jar
(不同的jar包相對應替換對應部分)

另外我嘗試了下面的方法,發現不行:
直接寫一個空的pom,裡頭包含對所需要jar包的依賴,通過這種方式希望將jar包下載到本地倉庫。但是應用代碼中沒用到,maven命令沒有下載這個jar包到本地倉庫。

補充,-DgroupId和-DartifactId的作用其實是指定了這個jar包的安裝在repository的安裝路徑,只是用來告訴項目去這個路徑下尋找這個名稱的jar包。比如:
mvn install:install-file -Dfile=freemarker-2.3.13.jar -DgroupId=freemarker -DartifactId=freemarker -Dversion=2.3.13 -Dpackaging=jar

就是安裝到了repository\freemarker\freemarker\2.3.13目錄下,如果在dependency的依賴裡也這麼寫的話,就可以到對應的目錄去尋找。
對於maven中存在classifier的,例如
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.2.0</version>
<classifier>tests</classifier>
</dependency>

就加一個-D參數就可以了,如下:
mvn install:install-file -Dfile=hadoop-hdfs-2.2.0-tests.jar -DgroupId=org.apache.hadoop -DartifactId=hadoop-hdfs -Dversion=2.2.0 -Dclassifier=tests -Dpackaging=jar

來自:http://www.cnblogs.com/Kubility123/p/5666671.html

Maven 手動添加 JAR 包到本地倉庫【轉】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.