一,私服的安装与配置
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:仓库组,默认聚合了以上三个仓库。
在私服中修改访问权限,允许匿名用户访问

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


将默认的中央仓库地址,改为阿里云镜像:
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中<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中<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文件中添加内容:<!--发布配置管理--> <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 界面,选择中央仓库

将原地址 http://repo1.maven.org/maven2/ 改为阿里云的地址 http://maven.aliyun.com/nexus/content/groups/public 即可

五,使用Docker快速搭建maven私服
-
拉取镜像
docker pull sonatype/nexus3 -
创建外部挂载文件
#挂载文件夹一定要放开权限,否则后面启动nexus时会无法启动 mkdir -p /usr/local/nexus-data && chmod 777 /usr/local/nexus-data -
启动容器
docker run \ -d --name=nexus3 \ -p 8081:8081 \ -v /usr/local/nexus-data:/nexus-data \ sonatype/nexus3
登录账号 admin,密码可以去看看 nexus-data 里面的 admin.password 文件