maven私服nexus上傳第三方jar包以及下載

陳灬大灬海發表於2019-08-01

 

 

 

 私服是一個特殊的遠端倉庫,它是架設在區域網內的倉庫服務。私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。當Maven需要下載構建的使用,它先從私服請求,如果私服上沒有的話,則從外部的遠端倉庫下載,然後快取在私服上,再為Maven的下載請求提供服務。

在maven中,配置setting.xml,之後通過mvn deploy命令可以將包傳入私服

有些第三方jar包,我們需要一般通過新建倉庫進行上傳

setting.xml配置

<servers>
    <server>
      <id>nexus</id>
      <username>gaming</username>
      <password>gaming</password>
    </server>
</servers>

 

 pom.xml配置下

 <distributionManagement>
  <repository>
    <id>nexus</id>
    <name>releases Repository</name>
    <url>http://192.168.1.222/repository/gaming/</url>
  </repository>
</distributionManagement>

1、自己maven私服更容易維護,公司開發從maven私服遷出jar到本地倉庫更快

2、有些公司未開放外網給開發人員

 登入nexus後臺,選擇建立repository

respository介紹

proxy:是遠端倉庫的代理。比如說在nexus中配置了一個central repository的proxy,當使用者向這個proxy請求一個artifact,這個proxy就會先在本地查詢,如果找不到的話,就會從遠端倉庫下載,然後返回給使用者,相當於起到一箇中轉的作用;
Hosted:是宿主倉庫,使用者可以把自己的一些構件,deploy到hosted中,也可以手工上傳構件到hosted裡。比如說oracle的驅動程式,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted裡;
Group:是倉庫組,在maven裡沒有這個概念,是nexus特有的。目的是將上述多個倉庫聚合,對使用者暴露統一的地址,這樣使用者就不需要在pom中配置多個地址,只要統一配置group的地址就可以了右邊那個Repository Path可以點選進去,看到倉庫中artifact列表。不過要注意瀏覽器快取。

 選中maven2(hosted)

 

 

 自定義倉庫名,其餘使用預設

 

 

 

 

 

之後就上傳成功,這是在後臺上傳

也可以通過命令上傳

mvn deploy:deploy-file -DgroupId=net.sf -DartifactId=json-lib -Dversion=2.4 -Dpackaging=jar -Dfile=E:/json-lib-2.4.jar -Durl=http://192.168.1.222/nexus/repository/releases/ -DrepositoryId=releases

引數說明

mvn deploy:deploy-file

  • -DgroupId=xxxxxx 就相當於pom中的groupId
  • -DartifactId=xxxxxx 就相當於pom中的artifactId
  • -Dversion=xxxxxx 就相當於pom中的版本號version
  • -Dpackaging=xxxxxx 就相當於pom中打包方式
  • -Dfile=xxxxxx 本地環境
  • -Durl=xxxxxx 上傳的url
  • -DrepositoryId=xxxxxx 對應的是setting.xml 裡邊的id

 

下載,需要修改maven的setting.xml

設定repository

 之後reimport即可。

相關文章