需求背景
私服主机:A
开发者电脑1:B
开发者电脑2:C
开发者电脑3:D
。。。很多很多台开发电脑 。。。
所有开发者电脑都连接私服,去下载依赖和构件,私服去中央仓库下载依赖和构件。
通过这样实现大家使用的依赖版本一致性,以及可以上传自己的jar包到私服,供他人使用。
工具和版本
开发工具:IDEA
私服:Sonatype Nexus3.38.1-01
安装私服软件
下载windows版本压缩包后,解压到自己想要存放的位置。
接下来以管理员身份打开CMD,cd到安装目录F:\nexus-3.38.1-01-win64\bin下,执行下面两步启动命令:nexus.exe /install 和 nexus.exe /star即可,此时就私服安装以及启动就都已经完成了。
nexus.exe命令大全:
nexus.exe /install 安装服务,将程序安装到系统服务列表
nexus.exe /run 运行服务,将程序启动起来(前台线程启动,退出界面即退出程序)
nexus.exe /start 启动服务,将程序以服务的形式启动,将后台调用run进行启动,需等待部分时间完成启动
nexus.exe /stop 停止服务
nexus.exe /status 查看服务状态
nexus.exe /uninstall 卸载服务,在系统服务列表卸载当前服务后,可执行install重新安装
安装过程以及需注意的点和坑
解压后的Nexus目录有两个:nexus-3.38.1-01和sonatype-work,如图
1)bin目录下有个配置nexus.vmoptions,网上很多教程都说可以修改,本人也修改了,原本是2048mb,我修改为1024mb,自己安排。
2)etc目录下有个配置nexus-default.properties,里面有nexus服务的端口和ip地址,如果是用一台专门的机器作为私服,其他机器来连接这台私服,那么这个配置的ip地址0.0.0.0不要修改为127.0.0.1。
3)登录登录Nexus网页端
1.登录地址127.0.0.1:8081,第一次登录时,根据提示去做,账号默认为admin,但是初始密码它会在它提示的文件内。
2.用初始密码登录后,会要求要修改设置新的密码,设置成自己记得住的就行,下次登录就用自己的密码,初始密码就没用了。
3.会提示一个是否允许匿名者访问。这一步先同意使用匿名者访问【Enable anonymous access】,这个是关于权限的问题,后面再讲。
私服的知识
通过登录到私服127.0.0.1:8081网页端,可以看到界面
私服Nexus的仓库类型有:proxy,hosted,group三种。
仓库名称 类型
maven-central proxy
maven-public group
maven-releases hosted
maven-snapshots hosted
1.其实很简单,group类型的仓库【maven-public】管理着proxy和hosted类型的仓库。
- group类型的仓库【maven-public】不会存储实物文件,不会储存依赖和jar包,其实就是一个有点像虚拟的仓库,一个中转站一样的。外界的开发电脑通过连接这个group类型的【maven-public】仓库,从而驱动proxyl类型的【maven-central】仓库去中央仓库下载依赖和构件。以及通过group类型的仓库【maven-public】去上传自己开发的jar包到hosted类型的仓库【maven-releases】或【maven-snapshots】。
- 如下图也能看出【maven-public】仓库是管理着【maven-central】【maven-releases】【maven-snapshots】这三个仓库的。
- 如上图在Member repositories成员仓库中,这些仓库是有先后顺序的,排在前面的优先。也就是说,在上图配置下,开发者的电脑连接到私服,若开发者在pom.xml文件中要添加新的依赖,私服会首先在自己的【maven-releases】仓库去查找,若找不到再去【maven-snapshots】仓库查找,若还找不到才会去【maven-central】这个仓库,而【maven-central】仓库其实就是去maven的远程中央仓库下载。
2.hosted类型的仓库,也就是常说的宿主仓库,有【maven-releases】和【maven-snapshots】两个。
- 这两个仓库是可以储存实物文件的。
- 这两个仓库是储存本公司自己的程序员开发的jar包的。开发者可以把自己开发的jar包推送到私服的这两个仓库中,