从Maven到Nexus,软件公司设立私服的原因何在?
Posted 研发云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Maven到Nexus,软件公司设立私服的原因何在?相关的知识,希望对你有一定的参考价值。
在进行软件开发的过程中
无论什么项目、采用何种技术和编程语言
我们都要重复相同的开发步骤
包括收集、构建、编写源代码、配置信息、
测试、打包、发布、文档等等
其中大部分时间都会花销在构建上
如果所有的构建工作都需要手动去完成
对开发者来说就会浪费巨大的人力和时间成本
因此,让软件自动化的完成这一系列工作
成为Maven的使命
Maven不是Java领域唯一的构建管理解决方案
但却是最受欢迎的方案之一
Maven是面向技术层面、针对Java的开发项目管理工具,为开发人员提供了构建一个完整的生命周期框架的方案。开发团队可以自动完成项目的基础工具建设,同时实现创建报表、检查、构建和测试等自动化设置。
在Maven中,任何一个依赖(jar包)、插件或者项目输出都称为构件。maven在某一位置存储所有共享的构件,这个统一的位置就是仓库。
当需要进行项目构建时
用户不必单独地下载任何构件
这一切都是因为Maven中央仓库的存在
一个原始的Maven安装就自带了默认远程仓库
——Maven中央仓库
只需访问这个仓库,就能进行构件更新
但是这也会带来一定的问题
因为大部分软件研发公司里都有网络限制
不能随便上外网
如果频繁地进行此类操作,就会出现安全问题
也可能会诱发防火墙进行拦截操作
所以在大型的软件公司
往往会创建一个单独的Maven本地仓库(私服)
开发者需要的任何构件都可以先从该处获取
如果本地仓库没有
就尝试从中央仓库下载构件至本地仓库
然后再从本地仓库使用构件
这不仅大大节省了网络资源
也能很好地消除网络安全隐患
要想实现这一部署
就需要借助另一款工具Nexus来完成
我们是谁?
开发者!
我们要干吗?
建Maven私服!
靠什么建?
研发云上的Nexus工具!
Nexus是一个基于Maven的仓库管理的项目工具,主要的使用场景就是可以在局域网搭建一个Maven私服,将这个本地仓库用来部署公共构件,或者作为远程仓库在该局域网的一个代理。
以研发云工具链上的Nexus为例
它提供了强大的仓库管理和构件搜索功能
占用内存较少,用户体验效果上佳
对 Docker,NuGet,npm,Bower都给予支持
还拥有自动管理任务的管理接口
基于简单的文件系统而非数据库的属性
使其日趋成为最流行的Maven仓库管理器
Nexus能配置的几种仓库类型如下
1、hosted(宿主仓库):用来部署自己、第三方或者公共仓库的构件;
2、proxy(代理仓库):是远程仓库的代理,比如说在Nexus中配置了central repository的proxy,当用户向这个proxy请求一个构件时,这个proxy就会先在本地查找,如果找不到的话,再去远程仓库下载,返回给用户。相当于一个中转的作用;
3、virtual(虚拟仓库):默认提供了一个 Central M1虚拟仓库,用来将maven 2适配为maven 1;
获取更多产品介绍及业界动态
以上是关于从Maven到Nexus,软件公司设立私服的原因何在?的主要内容,如果未能解决你的问题,请参考以下文章