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..