Maven作为目前主流的项目管理工具,在依赖管理、系统构建等方面的表现可谓可圈可点。但对于去“墙内”用户而言,访问国外的Maven仓库无疑是一场噩梦,搭建私有Maven仓库是解决该问题的有效途径之一。
私有仓库原理
- 开发人员或构建系统基于本地的Maven构件(artifact)库进行系统构建;
- Maven本地库将项目自建构件发布到Maven私有库中实现发布共享和版本管理,并从Maven私有库中加载本地所需的依赖;
- 如果Maven私有库中不存在所需构件,则扫描所配置的外部中央仓库或镜像进行下载,再下载到本地库,二次使用时无需再次从外部下载构件。
私有仓库好处
- 一劳永逸:将构件先下载到位于内网环境私有仓库,后续使用无需重复到国外或镜像下载,解决外网速度和带宽占用问题,提升开发效率;
- 自建构件发布和共享:可以将项目的构件发布到私有仓库,从而实现模块化项目管理。
搭建私有仓库
Nexus 是Maven仓库管理器,还提供了强大的仓库管理功能、构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
本节将介绍如何在Linux环境下搭建私有Nexus Maven仓库。
注:Nexus 3.*当前最新版本3.2.1需要在JVM1.8及更高版本环境运行,本文使用的 Nexus版本为2.14.3,详细内容请参见官方文档。
- 安装JDK:【转载】使用RPM在Linux环境安装JDK 1.7
- 下载Nexus:https://www.sonatype.com/download-oss-sonatype
安装Nexus:
将压缩包上传到服务器,并解压获得两个目录:tar -zxvf nexus-2.14.3-02-bundle.tar.gz
- nexus-2.14.3-02是nexus服务主目录;
- sonatype-work是真正的仓库,同时包含了nexus的配置,如定时任务、用户配置等。
修改启动端口
Nexus默认端口为8081
,建议修改为其他端口,修改nexus/conf/nexus.properties
配置文件即可。
启动Nexus
执行以下命令启动:/app/nexus/nexus-2.14.3-02/bin/nexus start
如出现
Root
用户异常和解决方案如下图:
nexus
命令用法如下:
nexus { console | start | stop | restart | status | dump }
登录控制台
控制台地址如下,端口与配置文件nexus.properties
一致:http://10.0.79.28:8081/nexus/
登录页面如下:
默认登录名/密码为admin / admin123
管理仓库(Repository)
仓库分类:- hosted——本地仓库,通常我们会部署自己的构件到这一类型的仓库;
- Releases :存放Maven中提交的Releases项目
- Snapshots :存放Maven中提交的Snaphots项目
- 3rd party :存放Maven中央仓库中没有的第三方jar包
- proxy——代理仓库,它们被用来代
- hosted——本地仓库,通常我们会部署自己的构件到这一类型的仓库;