`
juvenshun
  • 浏览: 1588888 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Maven仓库管理器的重要性

阅读更多

今天在maven主题的irc中得知,又一个中国的ip被中央Maven仓库 封了。原因我猜到了大半,但还是忍不住问一下,回答是:

他们消耗了很大的中央仓库带宽,会使之变慢。因此这些人不是良好的Maven公民。

 

我也曾经在个人笔记本上直接使用中央Maven仓库,第一次build项目下载了很多东西,可这样并没有被封,说明中央仓库不是很苛刻的,那么是什么样的下载量导致中央仓库的管理员受不了呢?我猜测是某个公司吧,很多人用Maven构建项目,但是自己没有建立一个仓库管理服务器,有太多的重复下载,直接导致占用了很大的带宽。

 

那么,请用Maven仓库管理器吧,为了别人,更为了自己。仓库管理器是干什么的?《Maven权威指南》中这样说明:

仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方。

 

我略微解释下,首先它是代理,举个有点极端的例子,一百人的公司,每个人从公共Maven仓库下载100M的构件,那么消耗的带宽就是10G,开发者就难免会对着console的下载进程发愣,或者抱怨。还有,如果需要从5个公共仓库构件,那么每个开发者就需要自己配置POM或者settings,那么一共需要配置500次。最后,如果公司的IP对Maven中央仓库造成8G的下载量,那边的管理员为了能给更多人提供服务,只能无奈的封掉你的这个IP。因此这个公司需要维护一个Maven仓库管理器,它代理所有内部Maven的构件请求,并在服务器上维护一份缓存,该公司为所有的构件只向公共仓库请求一次,消耗公网带宽100M,内部请求完全通过LAN搞定,开发者看到进度条刷刷的闪,心情会比较好。此外,所有开发者只需要配置一个指向这个代理的仓库。公共服务器的配置,在仓库管理器维护,这也大大减少的时间。

 

Maven仓库管理器的第二个功能是,为组织提供一个部署构件的公共地址,以便共享。一个项目可能分割成5个模块,模块之间相互有依赖,有了仓库管理器,模块A的SNAPSHOT版本可以随时发布到内部仓库上,模块B就能很方便的得到最新的模块A构件。此外,release版本的构件也能很方便的发布,供QA测试等等。

 

如果不是一个人玩玩Maven而已,那么仓库管理器是必须的,Nexus 是一个比较强大的仓库管理器,Maven权威指南 中第十六章详细介绍了仓库管理器和Nexus,翻译内容将于近几日发布。

13
7
分享到:
评论
16 楼 skydream 2008-09-01  
支持一下博主,maven的重要性不是那些习惯了作坊式工作方式的开发人员所能理解的,不必为他们的一些无知言论悲哀什么。

知道自己走的路是ok的好了。
15 楼 flyfan 2008-08-22  
公司没人用Maven,只能自己玩一下
14 楼 juvenshun 2008-08-21  
引用
不赞同这种鄙视传统模式的构建方法,不同工具有不同的使用场合吧。如果项目足够小、瓶颈不在库管理、个人项目、或者你的队员并不熟悉Maven模式,Ant、shell脚本、IDE未尝不可。Maven是工具,不是目标

这个意见我很赞同,但是有些人很明显只接触了小项目,无视大项目中自动化构建的重要性。这是让我感到不爽的。
13 楼 koda 2008-08-21  
引用
我感到有点悲哀,就像之前碰到一个人说,喜欢全部手动管理jar一样,这样的程序员,还是太多了。


不赞同这种鄙视传统模式的构建方法,不同工具有不同的使用场合吧。如果项目足够小、瓶颈不在库管理、个人项目、或者你的队员并不熟悉Maven模式,Ant、shell脚本、IDE未尝不可。Maven是工具,不是目标
12 楼 lovefly_zero 2008-08-21  
学习心态积极与否 决定我们的差距 我们有时候太急于求成了

我们老大也喜欢手动管理jar包,屡次劝说使用maven无果 小郁闷一下

前一段时间好不容易劝说他使用trac来做项目管理

嘿嘿 看来小火慢炖才能煲一份好汤 急不来
11 楼 juvenshun 2008-08-21  
很多时候,国人与世界的差距不在于技术的高低,而在于学习心态积极与否,无知者,无谓的无视差距,让人无语
10 楼 xl515331 2008-08-21  
引用
引用
没必要为这个浪费太多精力.
Maven的仓库对项目来说没什么意义,jar又不是经常更新,搞得N复杂.

我感到有点悲哀,就像之前碰到一个人说,喜欢全部手动管理jar一样,这样的程序员,还是太多了。


to juvenshun 

           其实没啥好悲哀的  每个人都有自己的工作环境 和理解方式,也用不着争论什么

           没有经过痛苦就不会有深刻的认识.

           只要做自己认为对的事情就好了
9 楼 raymond2006k 2008-08-20  
我支持博主。

对于项目比较多,或者有软资产积累的公司来说,开发库的规范化管理很重要。
8 楼 kzoom 2008-08-20  
分析的不错
7 楼 juvenshun 2008-08-20  
引用
没必要为这个浪费太多精力.
Maven的仓库对项目来说没什么意义,jar又不是经常更新,搞得N复杂.

我感到有点悲哀,就像之前碰到一个人说,喜欢全部手动管理jar一样,这样的程序员,还是太多了。
6 楼 超级潜水员 2008-08-20  
没必要为这个浪费太多精力.
Maven的仓库对项目来说没什么意义,jar又不是经常更新,搞得N复杂.

5 楼 maomaocong 2008-08-20  
好贴啊,好贴
4 楼 love_seam 2008-08-20  
maven可是不太好用啊!
3 楼 love_seam 2008-08-20  
   good
2 楼 xl515331 2008-08-20  
ps
   期待 16 章发布
 
   最近要给团队做个maven 的培训 少不了 要参考的........
1 楼 xl515331 2008-08-20  
顶了

顶了

昨天 在msn 群里讨论完之后 试用了一下 Nexus 感觉上手非常快

深入试用后 再做评论

相关推荐

Global site tag (gtag.js) - Google Analytics