Maven笔记 - 第五章

第5篇:私服详解

maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。

这是maven系列第5篇。

整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。

环境

  1. maven3.6.1

  2. 开发工具idea

  3. jdk1.8

本篇内容

  1. 私服介绍

  2. windows中安装nexus私服

  3. linux中安装nexus私服

  4. nexus私服中各种仓库详解

  5. 配置本地Maven从nexus下载构件

  6. 将本地构件发布到私服的2种方式详解

  7. 总结

上一篇文章中有提到了私服,我们再来回顾一下私服相关的内容。

私服

私服也是远程仓库中的一种,我们为什么需要私服呢?

如果我们一个团队中有几百个人在开发一些项目,都是采用maven的方式来组织项目,那么我们每个人都需要从远程仓库中把需要依赖的构件下载到本地仓库,这对公司的网络要求也比较高,为了节省这个宽带和加快下载速度,我们在公司内部局域网内部可以架设一台服务器,这台服务器起到一个代理的作用,公司里面的所有开发者去访问这个服务器,这台服务器将需要的构件返回给我们,如果这台服务器中也没有我们需要的构件,那么这个代理服务器会去远程仓库中查找,然后将其先下载到代理服务器中,然后再返回给开发者本地的仓库。

还有公司内部有很多项目之间会相互依赖,你可能是架构组的,你需要开发一些jar包给其他组使用,此时,我们可以将自己jar发布到私服中给其他同事使用,如果没有私服,可能需要我们手动发给别人或者上传到共享机器中,不过管理起来不是很方便。

总体上来说私服有以下好处:

  1. 加速maven构件的下载速度

  2. 节省宽带,加速项目构建速度

  3. 方便部署自己的构件以供他人使用

  4. 提高maven的稳定性,中央仓库需要本机能够访问外网,而如果采用私服的方式,只需要本机可以访问内网私服就可以了

有3种专门的maven仓库管理软件可以用来帮助我们搭建私服:

  1. Apache基金会的archiva
http:
  1. JFrog的Artifactory
https:
  1. Sonatype的Nexus
https:

这些都是开源的私服软件,都可以自由使用。用的最多的是第三种Nexus,本文我们主要以这个来讲解,其他2种有兴趣的朋友可以去研究一下。

Windows10中安装Nexus私服

nexus是java开发的,所以运行的时候需要有java环境的支持。

安装jdk

安装jdk1.8,可以参考Maven系列第2篇:安装、配置、mvn运行过程详解这篇文章中有介绍

下载nexus

下面提供两种下载方式:官网下载、百度网盘下载,百度网盘速度会快一些。

官网和百度网盘中都包含了windows、linux、mac版本nexus安装文件。

建议大家使用网盘中的资源,保持和本文环境一致,可以避免出错。

nexus下载地址
https:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D0ZErCsj-1629908579960)(media/1c56967e321d4d60bddb47b130b3062b.png)]

百度网盘下载地址
链接:https:
提取码:vig6 
复制这段内容后打开百度网盘手机App,操作更方便哦

解压latest-win64.zip

latest-win64.zip解压之后会产生两个文件目录nexus-3.19.1-01和sonatyp-work

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAURX3XH-1629908579964)(media/a3c406272457c78add1e59ad3a2e6dbd.png)]

启动nexus

cmd中直接运行nexus-3.19.1-01/bin/nexus.exe /run ,如下:

D:\installsoft\maven\nexus\nexus-3.19.1-01\bin>nexus.exe /run

如果输出中出现了下面的异常请忽略

java.io.UnsupportedEncodingException: Encoding GBK is not supported yet (feel free to submit a patch)

浏览器中打开

http:

效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVtSMPY1-1629908579967)(media/581753c746cf1796c1eb1b31a0a6443c.png)]

登录Nexus

点击上图右上角的Sign in,输入用户名和密码,nexus默认用户名是admin

nexus这个版本的密码是第一次启动的时候生成的,密码位于下面的文件中:

安装目录/sonatype-work/nexus3/admin.password

登录成功后会弹出一些设置,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xa9hl5Cj-1629908579971)(media/7a7ba956b424e012bc405fc2c3a86b3c.png)]

点击Next,设置新的登录密码(新密码要保存好),如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BMPAqCn3-1629908579973)(media/10ceec9fa80273a06452605b9ffbc7dc.png)]

点击Next->Finish完成设置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Auzumg7V-1629908579976)(media/fe5968f4597b4767b4b391847877e77d.png)]

其他一些常见的操作

停止Nexus的命令

启动的cmd窗口中按:ctrl+c,可以停止Nexus。

修改启动端口

默认端口是8081,如果和本机有冲突,可以在下面的文件中修改:

nexus-3.19.1-01\etc\nexus-.properties

nexus使用java开发的web项目,内置了jetty web容器,所以可以直接运行。

Linux安装Nexus私服

下载安装包

百度网盘中下载linux版本的nexus安装包,选择latest-unix.tar.gz文件,下载地址如下:

链接:https:
提取码:vig6 
复制这段内容后打开百度网盘手机App,操作更方便哦

将上面的安装包放在/opt/nexus/目录。

解压

[root@test1117 nexus]
[root@test1117 nexus]
latest-unix.tar.gz  nexus-3.19.1-01  sonatype-work

启动

[root@test1117 bin]# /opt/nexus/nexus-3.19.1-01/bin/nexus start
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
Starting nexus

我上面使用的是root用户操作的,为了安全性,你们最好自己创建个用户来操作。

开放端口

/etc/sysconfig/iptables文件中加入下面内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT

执行下面命令,让上面配置生效:

[root@test1117 bin]# service iptables restart
Redirecting to /bin/systemctl restart  iptables.service

验证效果

访问

http:

出现下面效果表示一切ok。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GH32QN7k-1629908579978)(media/c1d111c2cec3812e0e05e102e25b44ec.png)]

登录

用户名为admin,密码在

/opt/nexus/sonatype-work/nexus3/admin.password

登录之后请请立即修改密码。

Nexus中仓库分类

前面我们说过,用户可以通过nexus去访问远程仓库,可以将本地的构件发布到nexus中,nexus是如何支撑这些操作的呢?

nexus中有个仓库列表,里面包含了各种各样的仓库,有我们说的被代理的第三方远程仓库,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-to2qQTAG-1629908579980)(media/4a97266b218b430031041c09da041e8e.png)]

上图中是nexus安装好默认自带的仓库列表,主要有3种类型:

  1. 代理仓库

  2. 宿主仓库

  3. 仓库组

代理仓库

代理仓库主要是让使用者通过代理仓库来间接访问外部的第三方远程仓库的,如通过代理仓库访问maven中央仓库、阿里的maven仓库等等。代理仓库会从被代理的仓库中下载构件,缓存在代理仓库中以供maven用户使用。

我们在nexus中创建一个阿里云的maven代理仓库来看下过程如下。

Nexus仓库列表中点击Create repository按钮,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDwS3yfW-1629908579983)(media/a19fe3b0dc167b477a6362cba55e66af.png)]

进入添加页面,选择maven2(proxy)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值