1. 程式人生 > >如何向maven本地倉庫新增jar包

如何向maven本地倉庫新增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