在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器,将第三方和内部的依赖统一管理,同时也可以节省网络带宽,当然前提是项目所需要的构件在私服中已经存在。如何在公司内部部署一个自己的Maven私有仓库呢?
私服介绍
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
搭建私服前后Maven工作流程:

可以使用专门的Maven仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用 Sonatype Nexus。
安装Nexus
安装JDK
openjdk比较精简,会出现各种奇葩问题,故使用Oracle JDK版本
下载地址 下载jdk-8u151-linux-x64.rpm
1 | # rpm -ivh jdk-8u151-linux-x64.rpm |
安装Maven
下载地址下载apache-maven-3.5.2-bin.tar.gz
1 | # wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz |
安装Nexus
下载地址 下载版本nexus-2.12.0-01-bundle.tar.gz
1 | # wget http://download.sonatype.com/nexus/oss/nexus-2.12.0-01-bundle.tar.gz |
将nexus设置为Linux系统的服务,并开机自动启动
1、复制$NEXUS_HOME/bin/jsw/linux-x86-64/nexus 到/etc/init.d/nexus
2、授于nexus脚本有可执行的权限:
1 | chmod 755 /etc/init.d/nexus |
3、修改nexus文件,配置以下参数:
修改NEXUS_HOME 绝对路径,如:NEXUS_HOME=”/usr/local/nexus”
设置RUN_AS_USER=nexus,或都其它的用户,前提是创建了此用户。
1 | NEXUS_HOME=/usr/local/nexus |
4、Red Hat, Fedora, CentOS增加nexus服务
1 | cd /etc/init.d |
配置完成后,您可以访问web界面 http://{IP}:8081/nexus/ ,进入系统进行设置
默认管理账号:admin 密码:admin123
Nexus管理
仓库类型
登录Nexus在左边菜单栏里选择Repositories,列出已有的所有仓库,可以看到type有几种类型划分
- group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库
- hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如oracle的JDBC驱动)以及自己或第三方的项目构件
- proxy 代理仓库:代理公共的远程仓库
- virtual 虚拟仓库:用于适配 Maven1

仓库常见操作
- 修改默认存储路径
- 同步索引
- 修改远程同步地址为aliyun镜像地址
参考资料
======================================================
希望各位朋友支持一下
- 领取我的阿里云幸运券,谢谢.
- 使用腾讯云资源
- Linode VPS
- 搬瓦工VPS
- 阿里云1888元云产品通用代金券点我
- 阿里云最新活动全民云计算升级-拼团上云更优惠
本文作者:dongsheng
本文地址: https://mds1455975151.github.io/archives/d406f18d.html
版权声明:转载请注明出处!


