一、什么是Nexus
nexus的全称是Nexus Repository Manager,是Sonatype公司的一个产品。它是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
我们主要用它来搭建公司内部的maven私服。但是它的功能不仅仅是创建maven私有仓库这么简单,还可以作为nuget、docker、npm、bower、pypi、rubygems、git lfs、yum、go、apt等的私有仓库,功能非常强大。这边附上一张官网的截图(nexus3)。
利用Nexus你可以只在一个地方就能够完全控制、访问和部署在你所维护仓库中的每个Artifact。
Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统和Lucene来组织数据。
Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
Nexus支持WebDAV与LDAP安全身份认证。
二、Nexus私服的作用
所谓的私服,就是在局域网中的一种特殊的远程仓库,它的作用是代理远程中央仓库和部署第三方构件。有了私服之后,当Maven需要下载构件的时候,直接请求私服即可,私服上如果存在所需的构件,则直接从私服进行下载到本地仓库;反之,如果私服上不存在所需的构件,私服会请求外部的远程仓库(中央仓库),先将构件下载到私服,然后再提供给本地仓库进行下载。这样,第二个开发人员如果同样需要此构件,就可以直接从私服进行下载到本地仓库了。
三、Nexus私服的优点
1.节省外网带宽:大量对中央仓库的重复请求会消耗带宽,利用私服代理外部仓库,可以避免重复的公网下载降低带宽的压力。
2.加速maven的构建:maven通过内网从私服拉取所需构件(私服存在此构件的情况下),获取构件的速度大大加快,从而加快打包构件的速度。
3.部署第三方构件:开发人员自己封装的一些jar包(工具类),可以部署到私服,以便内部开发人员的maven项目使用。
4.提高稳定性:当公网网络不稳定的时候,如果使用远程仓库,maven的构建也会变得不稳定。如果在私服存在所需的构件,即使没有公网,maven的构件也会顺利进行。
5.降低中央仓库的负荷:使用私服,避免了从中央仓库的重复下载,可以减轻中央仓库的负荷。
这些优点使得nexus日趋成了最为流行的Maven仓库管理器。
参考文章:
https://www.cnblogs.com/aiseek/p/9466247.html
https://blog.csdn.net/jie310600/article/details/84822960
http://www.eryajf.net/1803.html