Linux配置——Linux服务器搭建Nexus-Maven私服(适合新手比较基础)
背景
在使用maven构建项目的时候,几乎都会涉及到一个“私服”的概念,那么到底什么是私服?使用私服有能够带来哪些益处?
- 私服:私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
- 个人认为搭建私服的好处有两点:
- 一、速度问题。在maven连接公共仓库下载jar包时,如果遇到网速不给力的情况,那真就是呵呵了。使用私服,开发人员可以通过局域网在私服仓库中搜索下载jar包,这样一来就不存在网速的问题了。有些人可能会说国内有很多高速maven仓库啊,说的也对,那不知道是否想过自己网速不给力呢?
- 二、jar包管理问题,一套系统中,jar包版本绝对是一个大问题,不一样的jar版本造成的后果有可能是毁灭性的。通过私服,所有开发者使用的jar包版本都是统一的。
步骤
- 安装Nexu
- 下载Nexus:https://www.sonatype.com/download-oss-sonatype ,如下图,点击红色框内的链接即可下载
-
下载之后会得到文件nexus-3.9.0-01-unix.tar.gz
- 解压文件:tar -zxvf nexus-3.9.0-01-unix.tar.gz,会得到文件nexus-3.9.0-01和sonatype-work,如下图
-
- nexus-3.9.0-01:Nexus核心启动文件
- sonatype-work:Nexus下载文件默认存放位置
- 整合文件:因为解压之后的两个文件是分开的,所以最好将两个文件放到一个目录中(这步可以不操作,个人随意)
- 建立了一个目录,命名为nexus-3.9:mkdir nexus-3.9
- 将nexus-3.9.0-01移动到新建立的目录中:mv nexus-3.9.0-01 nexus-3.9
- 将sonatype-work移动到新建立的目录中:mv sonatype-work nexus-3.9
- 将新目录nexus-3.9移动到/usr/local目录下:mv nexus-3.9 /usr/local
- 启动Nexus
- 进入到Nexus启动目录下:cd /usr/local/nexus-3.9/nexus-3.9.0-01/bin ,注意标记颜色的是路径,用户可自定义
- 进入到bin目录下启动Nexus查看文件:ls -lt ,如下图所示
- 使用命令启动Nexus: ./nexus start,启动如下图
- 访问Nexus
- 登录控制台:在启动Nexus之后,大约2分钟左右,访问网址:http://服务器IP:8081/nexus,如下图
- 点击Sign In,登录,初始登录用户名admin,密码admin123,登陆后如下图所示
- 点击红色按钮,出现下图
- Blob Stores:Nexus下载的文件存放的默认位置,新手选择默认位置即可
- Repositories:仓库配置,很重要
- 点击Repositories,进入如下页面
- Nexus默认的仓库类型Type
- proxy(代理类型):这里就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。
- group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库,能把多个仓库合成一个仓库来使用。
- hosted(宿主类型):Hosted是宿主机的意思,内部项目的发布仓库(内部开发人员,发布上去存放的仓库)。
- virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
- Name说明
- maven-central:中央代理仓库
- maven-public:默认把maven-central、maven-releases、maven-snapshots合成一个仓库
- maven-releases:发布版本仓库
- maven-snapshots:快照版本仓库
- Nexus默认的仓库类型Type
- 查看maven-public仓库信息,点击maven-public,进入如下页面
- 标记1:是在maven的settings.xml中配置的镜像访问地址
- 标记2:是在这个仓库组里包含的其他仓库
- 所有配置默认即可,到此Nexus私服配置结束。
- 配置maven
- 进入{MAVEN_HOME}/conf/settings.xml
- 在<mirrors>标签内增加如下代码
<mirror> <id>nexus</id>
<name>maven-public</name> <mirrorOf>*</mirrorOf> <url>http://192.168.67.129:8081/repository/maven-public/</url> </mirror> - id:镜像的唯一标识,id用来区分不同的mirror元素,可自定义
- name:镜像的标识名称,可自定义
- mirrorOf:被镜像的id,*代表该组仓库下所有的仓库都可被构建
- url:镜像访问地址,访问该地址就可以访问该组仓库下的所有仓库
- 在<mirrors>标签内增加如下代码
- 进入{MAVEN_HOME}/conf/settings.xml
- 至此,maven私服可以进行访问了,前提是Nexus-Maven的服务器可以访问外网,而使用maven开发项目的宿主机不连接外网也没有问题