1. 程式人生 > >CentOS安裝Nexus:(二)配置及使用Maven私服

CentOS安裝Nexus:(二)配置及使用Maven私服

前面一篇文章介紹Nexus的安裝,接下來介紹Nexus在專案開發中的使用。

一、訪問Nexus

訪問地址:http://ip:8081/nexus

賬號/密碼:admin/admin123

二、Nexus倉庫

nexus的倉庫型別分為以下四種:

group: 倉庫組

hosted:宿主

proxy:代理

virtual:虛擬

首次登陸nexus後可以看到以下一個倉庫組和多個倉庫。


PublicRepositories:  倉庫組,將以下所有的庫整合起來並提供一個URL供我們使用。

3rd party: 無法從公共倉庫獲得的第三方釋出版本的構件倉庫,如oracle jdbc、documentum第三方開發包等

Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫

Central: 用來代理maven中央倉庫中釋出版本構件的倉庫

Central M1 shadow: 用於提供中央倉庫中M1格式的釋出版本的構件映象倉庫

Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫

Releases: 用來部署管理內部的釋出版本構件的宿主型別倉庫

Snapshots:用來部署管理內部的快照版本構件的宿主型別倉庫

三、配置Nexus使得可以搜尋Artifact

1,Central倉庫配置

Download Remote Indexes:true

Remote Storage Location:http://maven.aliyun.com/nexus/content/repositories/central/

此處特別感謝阿里雲提供的映象。


配置好以後能瀏覽遠端倉庫中內容,如圖:


2,建立索引

首先在nexus上更新索引,保證其索引是最新的。選中倉庫右鍵更新索引,只有更新了外部Maven中央倉庫的索引後才能搜尋到Artifact及jar包,更新索引需要不少時間,步驟如下:


四、管理第三方jar包

我目前只是用3rd party這個第三方的功能,將maven倉庫中沒有構件的jar包上傳到伺服器。如何將第三方的jar上傳到nexus上面呢?如下:舉例上傳oracle的驅動包

   

那麼現在nexus已經安裝好,怎麼使用上傳的jar包吧,很簡單的,前提是你已經建立了一個maven的專案。含有pom.xml這個檔案,在這個檔案中新增如下:

先去伺服器看看jar的maven構件

五、配置與Maven使用私服

在路徑{maven_home}/conf settings.xml 檔案中,為所有倉庫配置一個映象倉庫,映象倉庫的地址即私服的地址(這兒我們使用私服公共倉庫組 Public Repositories 的地址)

<mirrors>  
     <mirror>
      <id>nexus</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://ip:8081/nexus/content/groups/public</url>
    </mirror>
     
  </mirrors>
六、遷移Nexus到另一臺機器

我們只需要將索引和jar等儲存檔案拷貝過去

索引位置:

[[email protected] indexer]# pwd
/usr/local/sonatype-work/nexus/indexer
[[email protected] indexer]# ls
apache-snapshots-ctx  public-ctx    snapshots-ctx
central-ctx           releases-ctx  thirdparty-ctx
[[email protected] indexer]# 

jar檔案儲存位置:
[[email protected] storage]# pwd
/usr/local/sonatype-work/nexus/storage
[[email protected] storage]# ls
apache-snapshots  central  central-m1  public  releases  snapshots  thirdparty

七、遇到的問題

1,mvn install時報錯,錯誤資訊如下:

Failure to find xxx:jar:1.0 in http://localhost:8081/nexus-webapp-1.9.0/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced
解決辦法:
去自己的.m2 資料夾下把 xxx.lastUpdated檔案全部刪掉,重新執行maven,ok!或者在用maven時加 -U引數,就可以忽略xxx.lastUpdated..