2015年12月28日星期一

Nexus_001:使用 Nexus 2 搭建私服

环境: OS X EI Capitan 10.11.2 + JDK 1.8.0_66 + Maven 3.3.9


1. 下载并安装 Nexus
下载地址:http://www.sonatype.org/nexus/。
Nexus 分为社区版和专业版,这里使用社区版。
下载最新的Bundle发布版本:nexus-2.12.0-01-bundle.zip。Bundle版本自带了Jetty容器,不需要额外的Web容器就能直接启动Nexus。
unzip nexus-2.12.0-01-bundle.zip 解压后,有两个目录:
(1)nexus-2.12.0-01:包含了启动Nexus所需要的文件,如启动脚本,依赖jar包等等。该目录是必须要有的。
(2)sonatype-work:该目录包含了Nexus生成的配置文件、日志文件、仓库文件。该目录不是必须的,Nexus会在运行时动态创建该目录,其内容对于各个Nexus实例是不同的。不同的用户在不同的机器上使用Nexus有不同的配置和仓库。

ln -s nexus-2.12.0-01 nexus

2. 启动与停止 Nexus
cd nexus/bin
(1)前台启动 Nexus:./nexus console
(2)停止后台 Nexus:./nexus stop
(3)后台启动 Nexus:./nexus start
(4)查看 Nexus 状态:./nexus status
(5)后台重启 Nexus:./nexus restart

访问:http://localhost:8081/nexus/,管理员账户默认:admin/admin123。
如果想要修改Nexus默认的8081端口,修改nexus/conf/nexus.properties即可。

 
点击左边导航栏中的Repositories链接,可以看到所有类型的Nexus仓库。
仓库有四种类型:group、hosted、proxy、virtual。每个仓库的Format为maven2或maven1,Policy为Release或Snapshot。


Nexus 内置的仓库列表:
(1)Central:代理 Maven 中央仓库。
(2)Releases:策略为 Release 的宿主仓库,用来部署组织内部发布版本的构件。
(3)Snapshots:策略为 Snapshots 的宿主仓库,用来部署组织内部快照版本的构件。
(4)3rd Party:策略为 Release 的宿主仓库,用来部署无法从公共仓库获得的第三方发布版本构件。
(5)Apache Snapshots:代理 Apache Maven 仓库的快照版本构件。
(6)Public Repositories:该仓库将所有上述策略为 Release 的仓库聚合并通过一致的地址来提供服务。


Maven 可以直接从宿主仓库下载;也可以从代理仓库下载,代理仓库会间接地从远程仓库下载并缓存构件;为了方便,也可以从仓库组下载构件,仓库组没有实际内容,它会转向宿主仓库或者代理仓库获取实际的构件。

3.  创建并设置宿主仓库
点击Add...按钮,选择 Hosted Repository,配置信息如下:

 

(1)仓库的ID。
(2)仓库的名称。
(3)仓库的类型。
(4)仓库的格式。
(5)仓库的策略。
(6)仓库的默认存储目录。
(7)仓库的自定义存储目录。
(8)仓库的部署策略:只读(禁止部署)、关闭重新部署(同一构件只能部署一次)、允许重新部署。
(9)是否允许浏览仓库。
(10)是否对该仓库进行索引并提供搜索。
(11)是否允许通过URL访问仓库。
(12)当构件没找到时,缓存这一不存在的信息的时间。默认1440分钟,如果构件没找到,在1440分钟之内再查找时,直接返回不存在,而不会再查找文件系统。

4.  创建并设置代理仓库
点击Add...按钮,选择 Proxy Repository,配置信息如下:


(1)远程仓库的地址ID。
(2)是否下载远程仓库的索引,下载索引后,即使没有那些远程构件,用户也可以在本地搜索浏览那些构件信息。
(3)
(4)
(5)校验出错时的策略。
(6)构件缓存的最长时间。对于发布版本默认为-1,表示自第一次下载后一直有效,不再重新下载;对于快照版本默认为1440,表示每隔一天重新缓存代理构件。

5.  创建并设置仓库
点击Add...按钮,选择 Repository Group,配置信息如下:


(1)仓库组没有Releases 和 Snapshots 的区别。
(2)仓库组中所包含的仓库的顺序决定了仓库组遍历其所含仓库的次序,因此要将常用的仓库放在前面。

参考文献:
1. 《Maven 实战》 徐晓斌著 

没有评论: