1. 程式人生 > >maven私服搭建使用

maven私服搭建使用

前言

專案開發時,一般採用Maven來進行專案構建,管理,jar包下載,專案組開發人員開發時,只要在專案的pom.xml檔案中,新增如下pom.xml資訊從公共的庫中下載相關的Jar包以及依賴Jar包,但有時候公共的庫不是那麼穩定而且下載速度往往很慢,一個團隊一起開發專案時,如果每個組員都去下載一遍所有依賴的Jar包,其實是一件很麻煩的事情,所以這時候就有必要搭建一個Maven的私庫了,這樣如果再新增其他的構件時,會先在Maven私庫下載好,以後才會下載到本地。以後,如果發現私服已經存在某一jar包,則會直接從私服下載,如果沒有再去網路上下載,能大大的提高效率,因此很有必要搭建maven私服。

Maven私庫安裝部署

1.平臺版本說明

  • centos 7
  • nexus-2.14.2
  • JDK 8
  • apache-maven-3.3.9

2.環境安裝:安裝nuxus maven私庫之前先要安裝好JDK、maven等必要環境

3.Nexus Maven私庫安裝

  • nexus maven下載,下載地址:https://www.sonatype.com/download-oss-sonatype,我下載的是nexus-2.14.2-01-bundle.tar.gz
  • 安裝

   linux版本無需安裝,直接解壓即可 tar -zxvf nexus-2.14.2-01-bundle.tar.gz

  • 執行

   進入bin目錄下,執行./nexus start,啟動服務

 

Nexus Maven私庫的使用

1.初識Nexus Maven私庫

在位址列裡輸入服務IP地址和8081埠就可以開啟使用者介面,例如http://192.168.2.1:8081,點Sign In登入管理頁面,使用者名稱密碼為,admin和admin123,如下如所示,在Repositories頁面裡顯示著,預設已經建立了5個倉庫(2個為group),直接可以拿來用,無需再自行建立倉庫。

8081為預設的埠號,要修改埠號可進入nexus-2.14.2-01-bundle\nexus-2.14.2\conf\開啟nexus.properties檔案,修改application-port屬性值就可以了。

一般用到的倉庫種類是hosted、proxy。Hosted代表宿主倉庫,用來發布一些第三方不允許的元件,比如oracle驅動、比如商業軟體jar包。Proxy代表代理遠端的倉庫,最典型的就是Maven官方中央倉庫、JBoss倉庫等等。如果構建的Maven專案本地倉庫沒有依賴包,那麼就會去這個代理站點去下載,那麼如果代理站點也沒有此依賴包,就回去遠端中央倉庫下載依賴,這些中央倉庫就是proxy。代理站點下載成功後再下載至本機。筆者認為,其實Maven這個自帶的預設倉庫一般情況下已經夠大多數專案使用了。特殊情況時在配置新的倉庫,指定url即可。

hosted 型別的倉庫,內部專案的釋出倉庫

releases 內部的模組中release模組的釋出倉庫

snapshots 釋出內部的SNAPSHOT模組的倉庫

3rd party 第三方依賴的倉庫,這個資料通常是由內部人員自行下載之後釋出上去

proxy 型別的倉庫,從遠端中央倉庫中尋找資料的倉庫

group 型別的倉庫,組倉庫用來方便我們開發人員進行設定的倉庫

 

2.配置Nexus

  • 開啟遠端索引

    新搭建的neuxs環境只是一個空的倉庫,需要手動和遠端中心庫進行同步,nexus預設是關閉遠端索引下載,最重要的一件事情就是開啟遠端索引下載,點選左邊Administration選單下面的Repositories,找到右邊倉庫列表中的三個倉庫Apache Snapshots,Codehaus Snapshots和Maven Central,然後再沒有倉庫的configuration下把Download Remote Indexes修改為true,操作完後記得點選下面的save按鈕如下圖:

  然後在Apache Snapshots,Codehaus Snapshots和Maven Central這三個倉庫上分別右鍵,選擇Repari Index,這樣Nexus就會去下載遠端的索引檔案。

預設是從中央倉庫中下載jar包,但有時候中央倉庫下載很慢,經常下載不下來,所有有時候需要修改遠端倉庫的地址,可以改成jboss倉庫https://repository.jboss.org/nexus/content/groups/public/,還可以改成http://maven.aliyun.com/nexus/content/groups/public/,後面這個庫速度很快,不錯。

3.nexus私庫代理下載其他庫

新建proxy Repository,填寫引數,儲存,然後配置到public裡面去就行了。

 

本地使用maven私庫

新建settings.xml檔案,來替換掉之前maven裡面的settings檔案,寫入下面的內容即可,其中的ip就是你伺服器的ip。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  
<localRepository>E:\mavenRepertory</localRepository>

  <servers>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <id>public</id>
      <name>Public Repositories</name>
      <url>http://39.98.61.40:8081/nexus/content/groups/public/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
</settings>