Maven教程4(私服-nexus)
倉庫管理器也叫私服或代理倉庫
倉庫管理器有兩個服務目的:首先它的角色是一個高度可配置的介於你的組織與公開Maven倉庫之間的代理,其次它為你的組織提供了一個可部署你組織內部生成的構件的地方。
1Nexus介紹
Nexus是一個強大的Maven倉庫管理器, 它極大地簡化了自己內部倉庫的維護和外部倉庫的訪問。
利用Nexus你可以只在一個地方就能夠完全控制訪問和部署在你所維護倉庫中的每個Artifact。
Nexus是一套“開箱即用”的系統不需要數據庫,它使用文件系統加Lucene來組織數據。
Nexus使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,通過m2eclipse與Eclipse集成使用。Nexus支持WebDAV與LDAP安全身份認證。
2安裝Nexus
2.1下載
下載地址:https://www.sonatype.com/download-oss-sonatype
雲盤下載:https://pan.baidu.com/s/1ZivSkF8KKAoI1NeP-Ne4-A 提取碼:o7wb
2.2安裝
解壓到非中文路徑下
在cmd下切換到bin目錄執行 nexus install
以管理員身份打開cmd,否則有可以出現拒絕訪問的問題
啟動服務
==nexus start==
2.3測試訪問
地址:http://localhost:8081/nexus
默認 賬號: ==admin== 密碼: ==admin123==
3nexus介紹
## 3.1 倉庫類型
名稱|說明
---|:---
group| 倉庫組,包含宿主倉庫和代理倉庫
hosted|代表宿主倉庫,存放本公司開發jar包,以及一些第三方不允許的組件,比如oracle驅動、比如商業軟件jar包
proxy|代表代理遠程的倉庫,最典型的就是Maven官方中央倉庫、JBoss倉庫等等
virtual|虛擬
## 3.2 默認倉庫介紹
倉庫名稱|描述
-----|:-----
Public Repositories| 倉庫組
3rd party| 無法從公共倉庫獲得的第三方發布版本的構件倉庫
Apache Snapshots| 用了代理ApacheMaven倉庫快照版本的構件倉庫
Central M1 shadow| 用於提供中央倉庫中M1格式的發布版本的構件鏡像倉庫
Codehaus Snapshots| 用來代理CodehausMaven 倉庫的快照版本構件的倉庫
Releases| 用來部署管理內部的發布版本構件的宿主類型倉庫
Snapshots| 用來部署管理內部的快照版本構件的宿主類型倉庫
4nexus配置
4.1開啟遠程索引
方式一:
新搭建的neuxs環境只是一個空的倉庫,需要手動和遠程中心庫進行同步,nexus默認是關閉遠程索引下載,最重要的一件事情就是開啟遠程索引下載。登陸nexus系統,默認用戶名密碼為admin/admin123。點擊左邊Administration菜單下面的Repositories,找到右邊倉庫列表中的二個倉庫Apache Snapshots,Maven Central,然後再沒有倉庫的configuration下把Download Remote Indexes修改為true。如下圖
然後在Apache Snapshots,Codehaus Snapshots和Maven Central這三個倉庫上分別右鍵,選擇Repari Index,這樣Nexus就會去下載遠程的索引文件。
這樣設置以後, Nexus會自動從遠程中央倉庫下載索引文件, 為了檢驗索引文件自動下載是否生效,切換到Browse Index
這種方式需要從遠程站點下載,速度相對比較慢。
方式二、
直接給大家提供下載好的倉庫索引文件,直接覆蓋就可以了。
鏈接:https://pan.baidu.com/s/1_Rofajqlt4LaI8B_l9sUCg
提取碼:616l
步驟:
1.先停止nexus服務
2.將給你文件解壓縮。
3.刪除該目錄下所有文件%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx。然後將解壓的文件復制進去,
4.重啟服務即可。
這樣後面就不用再去官網查找了!!!
4.2創建宿主倉庫
新建公司的內部倉庫:
步驟為Repositories –> Add –> Hosted Repository,在頁面的下半部分輸入框中填入Repository ID和Repository Name即可,比如分別填入
myId 和 myRepostiory,另外把Deployment Policy設置為Allow Redeploy,點擊save就創建完成了。
4.3創建Nexus倉庫組
4.4如何在maven中使用自己的私服。
在setting.xml文件中:
的servers節點中添加
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
其次在mirrors節點中配置:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://localhost:8081/nexus/content/groups/DpbGroup/</url>
</mirror>
更新eclipse的配置
註意:一定把勾去掉,不然不會遠程下載。
maven項目中通過坐標下載測試。
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
==成功==
5上傳jar包私服
1.在conf/setting.xml文件中配置認證
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
2.在將要上傳的pom.xml中配置jar上傳的路徑
<!-- 配置上傳私服路徑 -->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
3.執行上傳命令 deploy
4.查看上傳結果
6.上傳特定jar包到私服
==Oracle驅動包==
<dependency>
<groupId>com.dpb.oracle</groupId>
<artifactId>ojdbc6-dpb</artifactId>
<version>1.0.0</version>
</dependency>
通過此坐標使用
7.從私服上下載jar包
7.1在conf/setting.xml中配置 模板
<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<!--是否下載releases構件 -->
<releases>
<enabled>true</enabled>
</releases>
<!--是否下載snapshots構件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>Public_Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
7.2激活模板
<!-- 激活模板-->
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
7.3測試使用
使用Oracle的jar包
8.私服中配置代理
雖然搭建了私服,但是如果私服中沒有我們需要的jar包,它還是會去中央倉庫去下載,這是速度同樣很慢,這時我們可以在nexus中添加阿裏的代理服務器。步驟如下:
遠程地址是:http://maven.aliyun.com/nexus/content/groups/public/
在把該代理倉庫添加到group中
如此:使用的時候就會先通過阿裏鏡像代理去下載
上一篇:Maven教程3(依賴管理)
下一篇:maven教程5(聚合工程)
Maven教程4(私服-nexus)