centos7搭建nexus maven2.x私服 轉

前置條件:

1.安裝jdk,可參考 http://www.cnblogs.com/grey-wolf/p/6480489.html

2.nexus倉庫管理器,分爲兩個版本,Nexus Repository Manager OSS 和 Nexus Repository Manager Pro。前者可以免費使用,相比後者,功能缺少一些,但是不影響我們搭建maven私服。

所以就選擇OSS版本。

下載地址:https://www.sonatype.com/download-oss-sonatype,下載不下來可以去這裏 http://download.csdn.net/detail/cctvckl/9766638

文檔下載地址:

http://books.sonatype.com/nexus-book/pdf/nxbook-pdf.pdf

 

好了,讓我們正式開始吧。

  1. 安裝nexus服務器
  • 上傳tar.gz包到指定目錄(我這邊假定是/home/ckl/upload)

  rz
  mv nexus-2.14.3-02-bundle.tar.gz /home/ckl/upload/

  • 解壓到/usr/local
    tar -zxvf /home/ckl/upload/nexus-2.14.3-02-bundle.tar.gz -C /usr/local/

  注意:

  一定要解壓到這個目錄下,具體原因我也不知道,文檔裏是這麼做的,我們也沒必要自己找麻煩。

  • 建立軟鏈接

  sudo ln -s nexus-2.14.3-02 nexus 

  • 查看/usr/local目錄,結果如下:

  

  • 設置環境變量(按官網文檔的說法是可選,不過還是配上吧)

  vim /etc/profile,在最後加上下面這一句,:wq保存退出

  

  • source /etc/profile 刷新剛設置的環境變量,使之生效
  • 查看結果

  

  1. 啓動服務器

(博客園的這個數字序號不知道怎麼才能設成2.有知道的朋友麻煩告知下)

  前臺啓動:

  cd /usr/local/nexus
  ./bin/nexus console

  以後臺進程啓動:

  ./bin/nexus start
  查看輸出的日誌:

  tail -f logs/wrapper.log 

  好了,我們來前臺啓動一下。咦,沒起來,提示:

  

  意思是堅持使用root用戶運行的話,需要設置一個環境變量.

  vim /etc/profile

  結尾加上

  export RUN_AS_USER=root

  保存退出。

  刷新:source /etc/profile

  再次運行,結果如下:

從紅框標識及相關文檔,可以知道,進程在8081端口啓動。

好了,我們在瀏覽器上看看能不能訪問吧,路徑:

http://192.168.2.141(換成你的ip):8081/nexus. 

 結果如圖所示:

 

點擊右上角登錄:

默認用戶名爲admin,密碼admin123

 

3.搭建私服

3.1 界面元素介紹

 

登錄後,點擊左側Repositories,界面如上圖所示。

右側的列表中,可以看到nexus預設的幾個倉庫。

第一個public Repositories,類型爲group,這個簡單理解爲倉庫的集合,下面的倉庫就是可以加入到這個集合的元素。

對外可以只提供一個單獨的url,如上圖顯示爲:http://192.168.2.141:8081/nexus/content/groups/public/

大部分的終端用戶,只需要配置上面這一個單獨的聚合後的url,而不用單獨配置多個倉庫。用戶也不需要知道某個jar包具體來源於maven 中央倉庫,或者是Apache Snapshots,或者是我們自己添加的其他倉庫。

這樣的好處在於:如果我們要新增某個倉庫(如開源中國、阿里雲),客戶端不需要做任何更改,只需要在nexus上將要新增的倉庫加入到對外提供服務的倉庫 group中就可以。

第二個3rd party,與倒數第一個和第二個倉庫,Releases和Snapshots一樣,類型爲hosted,意思是由nexus本機管理的倉庫。該倉庫用於商業化的,第三方提供的非開源的依賴倉庫,如oracle jdbc driver。

倒數第二個Releases,用於存放開發團隊內部用的正式版的依賴。

倒數第一個Snapshots,用於存放開發團隊內部日常構建的頻率更新較快的依賴包。

Apache Snapshots和Central類型都是proxy,意思是遠端倉庫的代理。前者包含了Apache Software Foundation 發佈的快照版本(這麼翻譯不知道對不對),後者爲Maven中央倉庫,我們平時maven默認就是連接該倉庫。

Central M1 Shadow類型爲virtual,按官方文檔的意思是,只是已有倉庫的一個不同呈現方式的映射。有需要可以參考官方手冊6.2.3節。

 

3.2 倉庫集合的界面

點擊Configuration,可以看到當前添加到該集合的倉庫列表及順序(優先級高的在上面,可用鼠標拖拽),當我們新增了倉庫,將會出現在右側的available Repository,添加到左邊即可。

如果有哪個倉庫不想加入到該集合,也可以拖拽到右邊來。

 

3.3使用本地maven客戶端測試nexus是否成功部署

首先複製倉庫集合的repository url,客戶端配置需要用到。

配置maven客戶端:

打開settings.xml,按照如下步驟修改:(該部分參考文檔4.2節)

複製代碼

<mirrors>
    <mirror>
    <!--This sends everything else to /public -->
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://192.168.2.140:8081/nexus/content/groups/public</url>
    </mirror>
</mirrors>

複製代碼

<profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

複製代碼

 

 

 

複製代碼

接下來在ide中測試下(我個人用maven命令行不多,不熟悉,還是用intelj idea演示吧)

在idea中依次打開File--Settings--搜索Maven--出現如下界面:

保證上述幾項指向正在用的maven目錄和配置文件即可。點擊ok,退出。

 

 打開Maven Projects窗口,勾選Profiles中的nexus。

隨便新建一個maven工程,在pom中添加一項本地倉庫中沒有的依賴,應該出現如下圖示:(下圖可以看出,正在去我們配置的私服下載maven依賴)

至此。大體配置完成。

上傳本地內部依賴到私服,可以參考:

http://jingyan.baidu.com/article/a948d6517b72eb0a2dcd2e2a.html

ps:有問題歡迎大家一起討論,也可以直接參考文章開頭髮的pdf文檔,非常詳細。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章