Nexus搭建Maven私服中央倉庫

1、概述html

  一、概要java

     如今的項目基本都是用Maven來管理工程,這樣一來在公司內容搭建一個私服就很是有必要了,這樣一來能夠管理公司內部用的JAR包,也能夠管理第三方的各類JAR來,以避免每次都要從外網的倉庫中下載。私服有兩種軟件搭建Nexus和artifactory,這兩個各有優勢。本文配置一下Nexus。Nexus仍是一個比較流行的私服。數據庫

  二、Nexus介紹apache

       Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本身內部倉庫的維護和外部倉庫的訪問。利用Nexus你能夠只在一個地方就可以徹底控制訪問 和部署在你所維護倉庫中的每一個Artifact。Nexus是一套「開箱即用」的系統不須要數據庫,它使用文件系統加Lucene來組織數據。Nexus 使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,經過m2eclipse與Eclipse集成使用。Nexus支持WebDAV與LDAP安全身份認證。瀏覽器

  Nexus的下載地址是:http://www.sonatype.org/nexus/go/到官網上將ZIP的壓縮包下載下來便可,解壓以後發現有兩個文件夾,一個是nexus-2.11.0-02,另外一個是sonatype-work;第一個文件夾包含了Nexus運行所須要的文件,是運行Nexus必須的;第二個文件夾目錄包含Nexus生成的配置文件、日誌文件、倉庫文件等,當須要備份Nexus的時候,默認備份的是此目錄文件。安全

  

2、環境準備oracle

  一、apache-maven-3.2.5  百度網盤下載地址:https://pan.baidu.com/s/1Rhglh4_RPgT79pXObQ2vZQ 提取碼:a6h6 app

  關於maven請參考個人另外一篇文章:https://www.cnblogs.com/liandy001/p/11287278.htmleclipse

  二、nexus-2.11.4-01-bundle 百度網盤下載地址:https://pan.baidu.com/s/1ZCyVb-Zc5RytvG9tFv5F2Q  提取碼:h3d0maven

  三、JDK1.8 64位 百度網盤下載地址:https://pan.baidu.com/s/1lI6BLbWK7DslmIjI_z81Pg  提取碼:knuz

   

3、Nexus環境配置

  一、修改系統變量

  在系統變量Path  添加值(D:\DevelopTools\nexus-2.11.4-01-bundle\nexus-2.11.4-01\bin;(按實際安裝目錄爲準))

  

 

  二、配置Nexus對應的JDK

  在 nexus的根目錄bin\jsw\conf\wrapper.conf的文件

  修改:wrapper.java.command=C:\Program Files\Java\jdk1.8.0_131\bin\java

  

  三、安裝Nexus服務

  dos窗口輸入指令nexus install

  

  

  四、啓動Nexus服務

  dos窗口輸入指令nexus start

   

  若是啓動失敗,主要有兩種緣由:

    一、Nexus安裝目錄 bin\jsw\conf\wrapper.conf中的java配置錯誤致使啓動失敗(錯誤可能性1:版本錯誤;錯誤可能性2:寫錯路徑了).

       二、8081端口被佔用致使啓動失敗(若是是非系統進程佔用,結束該進程便可),或修改Jetty的端口,在Nexus的安裝目前/conf/nexus.properties文件中找到 application-port=8081   改成8181就好了。

 

4、Nexus初步介紹

  1.打開瀏覽器,訪問:http://localhost:8081/nexus/:  

  2.點擊右上角 Log In,使用用戶名:admin ,密碼:admin123 登陸,可以使用更多功能:

  3.點擊左側 Repositories 連接,查看 Nexus 內置的倉庫:

   

  

  4.Nexus 的倉庫分爲這麼幾類:

  • hosted 宿主倉庫:主要用於部署沒法從公共倉庫獲取的構件(如 oracle 的 JDBC 驅動)以及本身或第三方的項目構件;
  • proxy 代理倉庫:代理公共的遠程倉庫;
  • virtual 虛擬倉庫:用於適配 Maven 1;
  • group 倉庫組:Nexus 經過倉庫組的概念統一管理多個倉庫,這樣咱們在項目中直接請求倉庫組便可請求到倉庫組管理的多個倉庫。

  5.爲了更好的使用 Nexus 的搜索,咱們能夠設置全部 proxy 倉庫的 Download Remote Indexes 爲 true,即容許下載遠程倉庫索引。

  索引下載成功以後,在 Browse Index 選項卡下,能夠瀏覽到全部已被索引的構件信息,包括座標、格式、Maven 依賴的 xml 代碼:

  

  

  6.管理本地倉庫

咱們前面講到類型爲hosted的爲本地倉庫,Nexus預約義了3個本地倉庫,分別是Releases, Snapshots, 3rd Party. 分別講一下這三個預置的倉庫都是作什麼用的:

  Releases:

     這裏存放咱們本身項目中發佈的構建, 一般是Release版本的, 好比咱們本身作了一個FTP Server的項目, 生成的構件爲ftpserver.war, 咱們就能夠把這個構建發佈到Nexus的Releases本地倉庫. 關於符合發佈後面會有介紹.

  Snapshots:

     這個倉庫很是的有用, 它的目的是讓咱們能夠發佈那些非release版本, 非穩定版本, 好比咱們在trunk下開發一個項目,在正式release以前你可能須要臨時發佈一個版本給你的同伴使用, 由於你的同伴正在依賴你的模塊開發, 那麼這個時候咱們就能夠發佈Snapshot版本到這個倉庫, 你的同伴就能夠經過簡單的命令來獲取和使用這個臨時版本.

  3rd Party:

    顧名思義, 第三方庫, 你可能會問不是有中央倉庫來管理第三方庫嘛,沒錯, 這裏的是指可讓你添加本身的第三方庫, 好比有些構件在中央倉庫是不存在的. 好比你在中央倉庫找不到Oracle 的JDBC驅動, 這個時候咱們就須要本身添加到3rdparty倉庫。

  

5、經過Maven發佈到Nexus中央倉庫

1 . 修改私服中倉庫的部署策略

  Release版本的項目應該發佈到Releases倉庫中,對應的,Snapshot版本應該發佈到Snapshots倉庫中。Maven根據pom.xml文件中版本號<version>節點的屬性是否包含-SNAPSHOT,來判斷該項目是不是snapshot版本。若是是snapshot版本,在執行mvn deploy部署命令時,maven會自動將項目發佈到Snapshots倉庫。要發佈項目,首先須要將Releases倉庫和Snapshots倉庫的「Deployment Policy」設置爲「Allow Redeploy」:

  

2 . 配置項目的部署倉庫

在項目的pom.xml文件中增長配置:

       <distributionManagement>
        <repository>
            <id>releases</id>
             <url>http://127.0.0.1:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
          <id>snapshots</id>
          <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
       </distributionManagement>

 

3.設置Maven的服務帳號和密碼

  D:\maven\apache-maven-3.2.5\conf\settings.xml

 

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

4.發佈項目到Nexus中央倉庫

右鍵項目->run as->maven build……->run

發佈成功後,在私服的倉庫中就能看到了:

 

6、在Nexus中手動上傳項目構件

 

7、Nexus私服庫快速導入jar包

一、找到Repositories->Central->Configuration;以下圖

備註:圖中第三步 是Nexus 默認的工做路徑,須要把你本地的 maven 倉庫地中的 全部jar包經過 XFTP上傳到裏面,再Save;

Nexus私服庫快速導入jar包結束;

相關文章
相關標籤/搜索