一,私服的安装与配置
nexus服务器的下载地址:sonatype.com
下载好相应的系统版本,解压开,其中包含两个目录,一个为服务器(nexus),一个为工作空间(sonatype-work)(运行的所有数据)
启动:
-
进入服务器的bin目录,打开cmd命令行输入:
nexus /run nexus
-
启动时间较长,请耐心等待,如果出现Started Sonatype ***则为启动成功
访问: 默认地址为 http://loclhost:8081,浏览器回车后进入到页面
- 修改端口的方法:在服务器目录下的
/etc/nexus-default.properties
文件修改端口 - 修改服务器内存等配置:在服务器目录下的
/bin/nexus.vmoptions
文件 - 在使用的时候我们需要登录,其中登录账号是
admin
,密码保存在工作目录/nexus3/admin.password
文件内
刚安装好的nexus一共给我们创建了7个仓库(不同的nexus版本可能有一点差距),我们只需要关注Format为maven2的仓库即可,也就是一共有4个:
maven-central
:该仓库用来代理 Maven 中央仓库,其策略为 Release,只会下载和缓存中央仓库中的发布版本的构件。maven-releases
:策略为 Release 的宿主仓库,用来部署公司或组织内部的发布版本构件。maven-snapshots
:策略为 Snapshot 的宿主仓库,用来部署公司或组织内部的快照版本构件。maven-public
:仓库组,默认聚合了以上三个仓库。
在私服中修改访问权限,允许匿名用户访问

在私服中配置代理仓库地址,即配置镜像源


将默认的中央仓库地址,改为阿里云镜像:
url
http://maven.aliyun.com/nexus/content/groups/public/
二,私服的仓库分类
仓库分类:
-
宿主仓库hosted:保存无法从中央仓库获取的资源。
例如自己研发的项目。
第三方非开源项目。
-
代理仓库proxy:代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库。
-
仓库组group:
- 将若干仓库组成一个群组,简化配置。
- 仓库组不能存放资源,是属于设计型仓库。
私服的资源获取如下图:

三,WebUI仓库使用方法
-
创建仓库
-
将仓库加入maven-public群组中
-
通过网页ui方式上传资源到仓库中
其中group id等参数就是你jar包的坐标
四,idea环境中资源的上传与下载
idea操作流程:

配置流程:
-
配置本地仓库访问私服的权限在maven安装路径下的
/conf/settings.xml
中xml<servers> <!--配置两个,代表访问两个仓库的用户,其中id名字虽然是随意的,但是建议取名为仓库名--> <!--账号密码就是web ui界面的账号密码--> <server> <id>maven-release</id> <username>admin</username> <password>admin</password> </server> <server> <id>maven-snapshots</id> <username>admin</username> <password>admin</password> </server> </servers>
-
配置本地仓库资源来源也在
settings.xml
中xml<mirrors> <mirror> <!--这个id随意,建议取仓库名--> <id>nexus-maven</id> <!--这个*代表所有资源都从这个仓库拿--> <mirrorOf>*</mirrorOf> <!--这个代表仓库组的url--> <url>http://172.31.154.122:8081/repository/maven-public/</url> </mirror> </mirrors>
-
在idea中配置
pom
文件中添加内容:xml<!--发布配置管理--> <distributionManagement> <!--release版本的资源发布地址--> <repository> <!--这个是你server里面的值--> <id>maven-release</id> <!--这个是你仓库的url--> <url>http://172.31.154.122:8081/repository/maven-releases/</url> </repository> <!--snapshots版本的资源发布地址--> <snapshotRepository> <!--这个是你server里面的值--> <id>maven-snapshots</id> <!--这个是你仓库的url--> <url>http://172.31.154.122:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
流程:idea发布资源包时,通过url访问仓库,通过id找到本地仓库中的server配置的账号密码来访问仓库。
-
idea的maven点击deploy就发布到私服了。
-
将maven的代理仓库配置远程仓库为阿里云仓库
进入Nexus界面,选择中央仓库
将原地址 repo1.maven.org/maven2/ 改为阿里云的地址 maven.aliyun.com/nexus/conte... 即可
五,使用Docker快速搭建maven私服
-
拉取镜像
bashdocker pull sonatype/nexus3
-
创建外部挂载文件
bash#挂载文件夹一定要放开权限,否则后面启动nexus时会无法启动 mkdir -p /usr/local/nexus-data && chmod 777 /usr/local/nexus-data
-
启动容器
bashdocker run \ -d --name=nexus3 \ -p 8081:8081 \ -v /usr/local/nexus-data:/nexus-data \ sonatype/nexus3
登录账号admin,密码可以去看看nexus-data里面的admin.password文件