1 . 私服简介
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用 Sonatype Nexus。
2 . 安装Nexus
Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。下载地址:http://www.sonatype.org/nexus/go。
解压安装包解压安装包nexus-3.1.0-04-win64.zip
两个目录:
nexus-3.1.0-04
sonatype-work :私服的默认仓库
1.1 将bin目录添加到环境变量中或者直接在 nexus-3.1.0-04\bin 目录下执行: nexus.exe /run
新建Nexus_HOME变量
D:\nexus-3.1.0-04-win64\nexus-3.1.0-04\bin
添加到Path中去
1.2 在 nexus-3.1.0-04\bin 目录下执行: nexus.exe /run
访问: http://localhost:8081/
点击右上角 Log In,使用用户名:admin ,密码:admin123 登录,可使用更多功能:
Nexus预置的仓库
Nexus Repositories 说明
在Nexus的Repositories中,主要有3种类型的仓库proxy、hosted、group
proxy
是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用
hosted
是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里
group
是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了