私服 Nexus 的配置


一、概述

    1、概要

     現在的項目基本都是用Maven來管理工程,這樣一來在公司內容搭建一個私服就非常有必要了,這樣一來可以管理公司內部用的JAR包,也可以管理第三方的各種JAR來,以免每次都要從外網的倉庫中下載。私服有兩種軟件搭建Nexus和artifactory,這兩個各有優點。artifactory 三年前已配置過了,本文配置一下Nexus。Nexus還是一個比較流行的私服。

    2、Nexus介紹

       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的時候,默認備份的是此目錄文件。

二、環境准備

    1、maven 3.3.3 下載最新的版本3\

    2、Nexus 2.11.1-01-bundle下載當前最新的版本

三、Nexus的安裝配置

   1、Nexus安裝

      下載完nexus之后,只需要將壓縮包解壓,將解壓后的文件夾放到你想要安裝的目錄即可——我的為D盤。

   2、配置Nexus環境變量

      將nexus的bin目錄設置到path的環境變量中(比較簡單不詳細講解了)

   3、配置Nexus

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

     # Set the JVM executable應該在15行左右,配置JAVA的路徑

     wrapper.java.command=D:\Program Files\Java\jdk1.7.0_71\bin\java

     將java目錄下的java.exe的路徑配置到里面即可(根據你電腦java的配置)

    4、Nexus的測試

      用管理員權限打開命令行(如果你的用戶不是Administrator則會提醒:出現 OpenSCManager failed 拒絕訪問的錯誤)

     在命令行中輸入nexus如果出現下面提示這證明配置成功——nexus的環境變量配置成功

    5、Nexus安裝並啟動

        輸入nexus start出現如下信息:說明nexus配置好了,但是還沒有安裝

     輸入nexus install即可安裝——如下信息即安裝成功

       啟動nexus:輸入nexus start即可

     6、啟動失敗

        如果啟動失敗提示:

        wrapper | The nexus service was launched, but failed to start

       可能有兩種原因:

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

       2、8081端口被占用導致啟動失敗(如果是非系統進程占用,結束該進程即可),或修改Jetty的端口,在Nexus的安裝目前/conf/nexus.properties文件中找到 application-port=8081 改為8181就行了。

    7、成功

        默認地址:http://127.0.0.1:8081/nexus

        點擊右上角Log In進行登錄,默認帳號:admin、密碼:admin123

四、Nexus初始化配置

     1、Nexus整體介紹

             我們可以從上圖中看到四種倉庫類型:group(倉庫組)、hosted(宿主)、proxy(代理)和virtual(虛擬)。其中每種類型的Format有Maven1或者Maven2,這里我們不看Maven1的。倉庫的Policy(策略)表示該倉庫為發布(Release)版本還是快照(Snapshot)版本倉庫。

    在圖中,Nexus列出了默認的幾個倉庫:

    Public Repositories:倉庫組,將所有策略為Release的倉庫聚合並通過一致的地址提供服務。

    3rd party:一個策略為Release的宿主類型倉庫,用來部署無法從公共倉庫獲得的第三方發布版本構件。

    Apache Snapshots:策略為Snapshots的代理倉庫,用來代理Apache Maven倉庫的快照版本構件。

    Central:該倉庫代理Maven的中央倉庫,策略為Release,只會下載和緩存中央倉庫中的發布版本構件。

    Central M1 shadow:maven1格式的虛擬類型倉庫。

    Codehaus Snapshots:代理Codehaus Maven倉庫快照版本的代理倉庫。

    Release:策略為Release的宿主類型倉庫,用來部署組織內部的發布版本構件。

    Snapshots:策略為Snapshots的宿主類型倉庫,用來部署組織內部的快照版本構件。

     2、點擊左側Repositories項 -> central倉庫 -> Configuration -> Download Remote Indexes=True -> Save,表示下載遠程倉庫的索引。

        同時override local storage location 也是可以改一下。

        點擊“save”。

       點擊左邊的“Administration”->"Scheduled Tasks"鏈接,如果沒有出現“Update Repositories Index”處於Running狀態,那么需要在Public Repositories行右擊,點擊"Update Index"。

       然后再點擊Schedule Tasks就可以看到有任務處於Running狀態了。

      等到索引下載完成之后,就可以在"Repositories"界面中,選擇Browser Index選項卡,可以看到Maven中央倉庫內容的樹形結構.

    3、手動上傳JAR包

               GAV Definition:選擇GAV Parameters

               輸入JAR包對應的:Group\Artifact\verison\

               選擇JAR

              第三步上傳包,第四步add artifact 最后update artifact.

              這樣包上傳成功。POM可以用了。

     4、Maven的配置

          在Maven安裝目錄conf/setting.xml 在<mirrors>內配置如下內容

<mirror>  
        <id>nexus</id>  
        <name>internal nexus repository</name>  
        <url>http://127.0.0.1:8081/nexus/content/groups/public/</url>  
        <mirrorOf>*</mirrorOf>  
</mirror>  

         在執行

mvn clean eclipse:eclipse -Ddowloadsources=true

       下自動從Nexus私服中下載JAR包。

     5、部署構件到私服

  我們在實際開發過程是多個人的,那么總有一些公共模塊或者說第三方構件是無法從Maven中央庫下載的。我們需要將這些構件部署到私服上,供其他開發人員下載。用戶除了通過界面手動上傳構件,也可以配置Maven自動部署構件至Nexus的宿主倉庫。

使用Maven部署構件到Nexus私服上日常開發的快照版本部署到Nexus中策略為Snapshot的宿主倉庫中,正式項目部署到策略為Release的宿主倉庫中,POM的配置方式如下:

 <!-- 配置遠程發布到私服,mvn deploy -->   
 <distributionManagement>   
        <repository>   
            <id>releases</id>   
            <name> Nexus Release Repository </name>   
            <url> http://127.0.0.1:8081/nexus/content/repositories/releases/ </url>   
        </repository>   
        <snapshotRepository>   
            <id>snapshots</id>   
            <name> Nexus Snapshot Repository </name>   
            <url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/ </url>   
        </snapshotRepository >   
  </distributionManagement >  

Nexus的倉庫對於匿名用戶只是只讀的。為了能夠部署構件,我們還需要再settings.xml中配置驗證信息:

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

其中,驗證信息中service的id應該與POM中repository的id一致。

這樣通過 maven 可以自動布置到Nexus私服中了。命令如下:

mvn clean deploy -Dmaven.test.skip=true

 這樣就可以把把自動的發布到nexus中去了。

     6、完工

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM