参考:Nexus搭建Maven私服全攻略一:认识Nexus与索引
参考:Nexus搭建Maven私服全攻略二:安装和配置Nexus3
一、安装Nexus
这里我们下载开源版 Nexus OSS。下载地址:http://www.sonatype.org/nexus/go
1.1 下载选择
这里以windows上为例,选择 Windows:
在你点击下载之后,会有 Read THE BOOK 的入口和加入 NENUX 社区的入口。你可以在其中,找到官方提供的完整安装和使用教程。【因为这里使用的是Nexus3的版本,和参考文章中不大一致】
1.2 解压压缩包
把下载的压缩包解压下来:
1.3 启动
启动cmd命令窗口,进入 nexus-3.5.2-01 目录下的 bin 目录下,按照官方的启动方式,需要在 bin 目录下使用 nexus /run 命令启动,如下图:
1.4 确认启动完成
确认之后,下面会打印出来启动的相关信息,接下来,耐心等待它启动完成。直到出现下面这个,才算启动完成:
1.5 开始体验Nexus
初次启动之后,你可以在浏览器上访问nexus这个maven管理器。地址:http://localhost:8081/
当然,你可以使用默认的用户登录。用户名:admin 初始密码:不是admin123,是保存在nexus安装目录下的sonatype-work的admin.password文件中,打开文件可以看到如下内容:
注:内容即为密码明文,而非加密后的结果,直接复制登录即可。
第一次输入账号密码后,会提示修改初始密码):
此时,观看命令窗口,会有记录相关的操作记录:
二、将nexus配置为系统服务
根据官方文档说明,将nexus配置为系统服务是一个很好的选择。因为:
上面的安装和启动过程并没有默认的把 nexus 作为服务加入系统服务中;
这样下次服务器重启,服务也会重启。
但是有个前提,就是已经确保安装了Java运行时环境。
接下来,我们重新打开一个窗口,去将nexus加入系统服务 :
ps:如果在windows7上安装nexus为系统服务时,报错:could not open SCManager 。则需要 以管理员身份运行 cmd ,然后重新执行。
三、熟悉nexus结构
3.1 目录结构
根目录
nexus-3.5.2-01 安装目录
sonatype-work\nexus3 数据文档
nexus-3.5.2-01 目录
bin 包含nexus的启动脚本和相关配置
etc jetty、karaf等配置文件
jre jre环境
lib java架包库
public 关于nexus应用在本地跑起来所需要的资源
system 应用所有的插件和组件
LICENSE.txt 和 NOTICE.txt 版权声明和法律细则
sonatype-work\nexus3 目录
blobs/ 创建blob的默认路径,当然也可以重新指定
cache/ 当前缓存的karaf包的信息
db/ OrientDB数据库的数据,用于存储nexus的元数据的数据库
elasticsearch/ 当前配置的Elasticsearch状态
etc/ 大概是运行时配置状态和关于资源库的自定义的相关的东西
health-check/ 看目录,健康检查的相关报告的存储目录吧
keystores/ 自动生成的关于资源库的ID主键
log/ 运行实例生成的日志文件,也有日志文件的压缩包,貌似是每天都会生成日志文件,你可以定期删除老的日志文件
tmp/ 用于存储临时文件的目录
具体每个目录下的各个配置文件的作用,还可参考官方文档说明:https://help.sonatype.com/display/NXRM3/Installation
3.2 配置参数
如果你想配置 nexus 的应用在本地启动的 JVM参数,可以在 nexus.vmoptions:
如果你想改变 nexus 的 端口号,可以在 nexus-default.properties:
四、配置Nexus
由于现在使用的 nexus3,所以在 nexus 应用上资源库初始化目录和 nexus2 有很大的不同,但是类型都是一样的。
关于左侧菜单中的各个功能模块的介绍,详细参见:https://help.sonatype.com/display/NXRM3/Configuration
上面提到的一点,不管 nexus 版本是怎么样的,至少 repository 的类型是一样的。
先看一下大概的目录结构:
资源库也就是这么三种,如上图中。
关于上面几个仓库的具体介绍,前篇文章已经说到了,这里就不重提了。具体传送门:https://blog.csdn.net/localhost01/article/details/84346992
4.1 创建 Blob Strores
在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。
前篇文章也提到,nexus3 使用了Blob Stores来保存仓库文件。因此创建仓库前,可以先创建 Blob Stores。当然你也可以不创建,那么将会使用默认的路径:./sonatype-work/nexus3/blobs
4.2 创建 Proxy Repository 代理仓库。
配置 Proxy Repository代理仓库。创建页面出来之后,页面上有三个框是必填的:
注意:可以多建几个proxy repository,以便于可以加入更多的远程maven仓库到我们的 group 仓库中。唯一一点,就是看加入的proxy资源库使用的是国内的还是国外的远程仓库。加入group资源库的顺序应是:hosted仓库 > 国内proxy仓库 > 国外proxy仓库。
这里推荐几个远程仓库:
jboss的maven中央仓库地址:http://repository.jboss.com/maven2/
阿里云的maven中央仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
apache的maven中央仓库地址:http://repo.maven.apache.org/maven2/
4.3 创建 hosted repository 宿主仓库
Hosted有三种方式:Releases、Snapshot、Mixed
Releases: 一般是已经发布的Jar包
Snapshot: 未发布的版本
Mixed:混合的
4.4 创建 group repository 仓库组
为什么要注意顺序??
官方文档中建议:
It is recommended practice to place hosted repositories higher in the list than proxy repositories. For proxy repositories, the repository manager needs to check the remote repository which will incur more overhead than a hosted repository lookup.
希望将hosted repositories【宿主仓库】的顺序放在proxy repositories【代理仓库】之前,因为一个group【仓库组】中可以涵括这些宿主仓库和代理仓库。而一整个的group是作为一个public,一个接口给别人使用的。
所以当查找架包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从宿主仓库(本地仓库)去查找是否有jar。