概述: 为什么要搭建Maven私服?
如果没有Maven私服,我们所需要的组件只能通过第三方Maven仓库远程下载到本地,下载速度相对较慢,搭建属于自己的maven私服,可以加快下载速度。
这里通过Nexus Repository Manager 3实现,Nexus Repository Manager 3是一个java应用程序,在jdk1.8及以上版本Java环境中运行。
步骤:
1.环境及工具交代
环境:Ubuntu16.04 + JDK8 + MAVEN3.3.9
工具:nexus-3.9.0-01-unix.tar.gz
首先需要安装 JDK8 和 Maven3
2.下载安装包
3.上传安装包到服务器并解压
新建目录
mkdir -p /u01/app/nexus
rz tar -xzvf nexus-3.9.0-01-unix.tar.gz
4.修改nexus的运行用户为root
vim /u01/app/nexus/nexus-3.9.0-01/bin/nexus.rc
里面的内容修改为:run_as_user="root"
5.修改nexus启动时要使用的jdk版本
vim /u01/app/nexus/nexus-3.9.0-01/bin/nexus.rc
新增如下内容:INSTALL4J_JAVA_HOME_OVERRIDE=/usr/lib/jvm/java-8-openjdk-amd64(此处为jdk的安装路径)
备注:查询jdk的安装路径方法: https://blog.csdn.net/stpeace/article/details/79411223
6.修改nexus默认端口,及允许远程机器访问
vim /usr/local/nexus-3.9.0-01/etc/nexus-default.properties
application-port=8081
application-host=0.0.0.0
7.启动nexus服务
cd /usr/local/nexus-3.9.0-01/bin/
./nexus run (此处是指前台启动)
备注:启动日志中会显示
此处大概意思是链接某个网站超时,可在前端关闭。操作方法: 打开【System】--》【Capabilities】,将【Outreach:Management】禁用即可。
最后可后台启动:
./nexus start
去前端查看:ip+8081 默认用户:admin 密码:admin123
8.设置开机自启动:
vim /etc/rc.local:
在最后面添加:/usr/local/nexus-3.9.0-01/bin/nexus start
划横线表示nexus的路径位置
备注:当前部署地址:192.168.1.113:8081 用户名admin 密码:admin123
此处 nexus安装设置完成
Maven私有云仓库的使用
1.使用地址访问
点击右上角sign in 登录 输入用户名和密码
出现齿轮可以进行设置
依次点击齿轮-->Repository ---> Repositories 其中默认会有
maven-public maven-releases maven-snapshots 三个默认仓库
首先属性Type中存在三种类型,
其中
group是组 例如:maven-public此仓库包含了maven-releases maven-snapshots等多个仓库,当把地址设置为组的地址的时候,就会自动从组中成员仓库顺序依次搜索下载组件。
proxy是代理仓库,如果代理仓库搜索不到,就会从远程仓库搜索下载,并且将该组件缓存到代理仓库,当再次请求该组件时,则直接到代理仓库下载,不会再次请求远程仓库。
注:此处远程仓库可以修改为阿里云仓库 以便于加速下载速度。
依次点击齿轮-->Repository ---> Repositories
点击maven-central 下滑找到 Proxy 将地址栏从阿帕奇改为阿里云地址(https://maven.aliyun.com/repository/public/)即可
hosted是宿主仓库 ,主要保存自己开发的模块,其中maven-releases maven-snapshots 的区别去maven-releases是正式版 maven-snapshots 是快照版
到此maven私服搭建完毕。
2.Settings.xml文件的配置
(1)首先配置settings.xml的镜像配置(这里的ip地址和端口 依据实际修改)
(2)创建maven项目,然后添加依赖即可。 可以添加依赖测试 ,会发现此时依赖就会从我们的私有云maven中下载。
如何上传模块到创建好的maven私有云仓库
(1)首先,对settings做以下配置(等同于用户登录验证是否有上传权限)
用户名密码为nexus的登录的用户名和密码
Id为自己新想要上传到的新建的仓库名
GroupId 就是公司域名的反写
Version 后若为SNAPSHOT 则上传的组件就会保存至 maven-snaphots,
Version 后若为RELEASE 则上传的组件就会保存至 maven-releases ,
配置好maven settings为镜像改为私有云maven的地址。就会从我们的服务下载
(2)在pom文件中做对应修改,此处对应上述settings修改 id必须一致(指定上传的地址)
<distributionManagement>
<repository>
<id>3rdParty</id>
<name>3rdParty Release Repository</name>
<url>http://192.168.1.113:8081/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>3rdParty</id>
<name>3rdParty Snapshot Repository</name>
<url>http://192.168.1.113:8081/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
(3)上述配置完成后,比如写了一个工具类StringUtil,需要上传到服务器提供给大家使用,大家就需要有对应的jar包。
(4)我们就可以在配置好上述操作后(见图中操作1),点击右侧maven中的deploy(见图中操作2)
(5)当出现下图中buildSuccess后,表示上传成功
因为我们在创建maven时,选择的是sanpshot快照版,所以jar包会被上传到maven-sanpshots仓库中,那么大家就可以下载并使用jar了,到此 上传教学结束。