目录
一、下载
1、官网地址:
2、百度网盘:
二、启动
三、将nexus配置为系统服务(PS:因为我只是试着在本地搭建,之后在服务器上搭建,所以这一部分没有亲自测试)
四、配置nexus和熟悉它(未亲测)
1、跟随着说明文档,看看下载nexus下来之后,有两个目录
2、如果你想配置nexus的应用在本地启动的JVM参数,可以在nexus.vmoptions
3、如果你想改变nexus的端口号,可以在nexus-default.properties
五、搭建maven私服资源库(重点)
1、登录:
2、创建工作空间:
3、创建仓库:
respository介绍
(1)创建Proxy Repository 代理资源库
(2)创建Hosted Repository 托管资源库
(3)创建Group Repository 资源库组
4、配置maven
(1)去复制我们创建的资源库组的url:
(2)settings.xml中添加私服配置:
https://www.sonatype.com/products/repository-oss-download
优点:最新
缺点:下载速度慢
版本:nexus-3.31.1-01-win64.zip
链接:https://pan.baidu.com/s/1ymGDH0jU9RxYPOY2-Rkvxw
提取码:b5l0
下载的压缩包解压下来
进入nexus-3.31.1-01目录下的bin目录下
直接在这个目录下输入“cmd”快速进入命令行界面:
按照官方的启动方式,需要在bin目录下使用“nexus /run”命令启动:
确认之后,下面会打印出来启动的相关信息,接下来,耐心等待它启动完成。
直到出现下面这个,才算启动完成。
初次启动之后,你可以在浏览器上访问nexus这个maven管理器
地址:http://localhost:8081/
当然,你可以使用默认的用户登录。
用户名:admin
密码:初始密码在这个文件里面,有个admin的文件
登录进去之后会让你修改密码,修改后记住自己改的密码即可
根据官方文档说明,将nexus配置为系统服务是一个很好的选择。因为
第一:上面的安装和启动过程并没有默认的把nexus作为服务加入系统服务中;
第二:这样下次服务器重启,服务也会重启。
但是这个有个前提,就是已经确保安装了Java运行时环境。
接下来,我们重新打开一个窗口,去将nexus加入系统服务
最后的
在windows7上安装nexus为系统服务时,报错:could not open SCManager
但是报错如下:
解决方法:
然后再次运行
如果再解决不了,那就在
直接以管理员身份运行这个命令提示符,然后安装服务。
显示安装成功之后,可以进入控制面板---》管理工具---》服务
查找名为nexus的服务
你可以选择,点击上面的启动按钮启动服务,也可以用下面的命令启动服务
【当然,可以在上面配置启动参数,这个之后再去查看配置】
启动完成之后,试着访问一下http://localhost:8081/
因为上面服务是自动的。
重启电脑之后,再次访问,可以访问到,完美。
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
启动服务后,使用自己修改的密码登录nexus:
这个类似于maven的仓库,用来存储上传到私服的jar包等资源:
proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用;
Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里;
Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存
创建页面中,有以下注意事项:
给出一些maven远程仓库的地址:
jboss的maven中央仓库地址:http://repository.jboss.com/maven2/
阿里云的maven中央仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
apache的maven中央仓库地址:http://repo.maven.apache.org/maven2/
其他选项默认即可
为什么要注意顺序??
官方文档中建议:
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。这样访问外网的消耗比起来在本地查找,当然是将托管资源库放在代理资源库之前的优先位置了。
直接在maven按照目录下的conf/settings.xml中进行修改,先贴一个我的整体的settings.xml
F:\Java\maven-repository
nexus
nexus repository
http://192.168.45.71:8081/repository/myself_group/
external:local-nexus3
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
nexus3
local-nexus3
http://192.168.45.71:8081/repository/myself_group/
jdk-1.8
true
1.8
1.8
1.8
1.8
nexus3
nexus
nexus repository
http://192.168.45.71:8081/repository/myself_group/
external:local-nexus3
nexus3
local-nexus3
http://192.168.45.71:8081/repository/myself_group/
nexus3
至此,windows版本的maven私服仓库已经搭建完成了,下一期研究linux版本的maven私服仓库的搭建。