私服 Nexus 的配置

1、概述html

    一、概要java

     如今的項目基本都是用Maven來管理工程,這樣一來在公司內容搭建一個私服就很是有必要了,這樣一來能夠管理公司內部用的JAR包,也能夠管理第三方的各類JAR來,以避免每次都要從外網的倉庫中下載。私服有兩種軟件搭建Nexus和artifactory,這兩個各有優勢。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、環境準備app

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

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

3、Nexus的安裝配置ide

   一、Nexus安裝

      下載完nexus以後,只須要將壓縮包解壓,將解壓後的文件夾放到你想要安裝的目錄便可——個人爲D盤。

   二、配置Nexus環境變量

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

   三、配置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的配置)

    四、Nexus的測試

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

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

    五、Nexus安裝並啓動

        輸入nexus start出現以下信息:說明nexus配置好了,可是尚未安裝

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

       啓動nexus:輸入nexus start便可

     六、啓動失敗

        若是啓動失敗提示:

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

       可能有兩種緣由:

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

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

    七、成功

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

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

4、Nexus初始化配置

     一、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的宿主類型倉庫,用來部署組織內部的快照版本構件。

     二、點擊左側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中央倉庫內容的樹形結構.

    三、手動上傳JAR包

               GAV Definition:選擇GAV Parameters

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

               選擇JAR

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

              這樣包上傳成功。POM能夠用了。

     四、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包。

     五、部署構件到私服

  咱們在實際開發過程是多我的的,那麼總有一些公共模塊或者說第三方構件是沒法從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中去了。

     六、完工

相關文章
相關標籤/搜索