天天看點

上傳jar包到maven庫

情形:maven項目中經常會遇到項目需要的jar在中央庫中沒有。以百度雲推送jar包為例。這時候我們有兩種解決辦法:

1.直接在本地庫中install這個jar包。我們可以運作指令:

mvn install:install-file -DgroupId=baidu -DartifactId=bacc-api-lib -Dversion=1.1.2  -Dpackaging=jar -Dfile=E:\bccs-api-lib-1.1.2.jar

2.上傳到本地倉庫管理器Nexus中,它的好處是代理遠端倉庫的同時維護本地倉庫,以節省帶寬和時間。整個團隊可以共享資源。例如我将包上傳到Nexus中,其他人隻要在本地庫中配置有讀取這個Nexus的資源的使用者,就可以依賴這裡面的包。具體配置是在settings.xml的<servers></servers>

<server>   

<id>thirdparty</id>   

<username>admin</username>

<password>admin123</password>   

</server>

 當然如果是上傳包,就需要這個使用者擁有上傳的權限。上傳的時候需要考慮倉庫的類型,倉庫分為:hosted、proxy、group、virtual四種類型。并且隻能上傳jar到hosted類型的倉庫中。

但是如果依賴的倉庫是group類型的,怎麼上傳呢?這時候如果直接向group類型的倉庫中,會發現有return code為400的錯誤。其實group類型的倉庫本身不包含資源,它隻包含某些倉庫,然後這些倉庫中含有的資源合并在一起,你可以從中下載下傳資源,但是不能直接上傳jar包給他,隻能上傳到它包含的hosted類型的倉庫中,就可以在這個組中通路到了。例如一個名為test group的組包含了hosted類型的3rd party倉庫,将包上傳到3rd party中就可以在test group中通路到這個包了。

上傳的指令是:

mvn deploy:deploy-file -DgroupId=baidu -DartifactId=bacc-api-lib -Dversion=1.1.2 -Dpackaging=jar -Dfile=E:\bccs-api-lib-1.1.2.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty。

最後我們在項目的pom.xml檔案中添加依賴就可以了:

<dependency>

<groupId>baidu</groupId>

<artifactId>bacc-api-lib</artifactId>

<version>1.1.2</version>

</dependency>

繼續閱讀