`
juvenshun
  • 浏览: 1595501 次
  • 性别: 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 感觉上手非常快

深入试用后 再做评论

相关推荐

    Maven仓库管理-Nexus

    Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...

    Maven仓库链接下载

    Maven仓库是Java开发中不可或缺的一部分,它是一个中央存储库,包含了大量的开源项目构件(JAR文件),使得开发者能够方便地管理和下载所需的依赖。Maven通过使用一个统一的配置方式,简化了项目的构建、依赖管理和...

    2024版Maven仓库清除工具

    Maven仓库在Java开发中扮演着至关重要的角色,它是一个存储库,用于管理和构建Java项目,包含各种依赖项如JAR文件、源代码、文档等。然而,随着时间的推移,Maven仓库可能会积累大量不再使用的或者过时的依赖,这...

    maven及其maven本地仓库

    RepMaven可能是一个针对Maven仓库管理的工具或服务,用于帮助开发者管理私有仓库,镜像中央仓库,或者备份和恢复Maven仓库。它可以帮助企业内部维护一个私有的依赖库,减少对公共中央仓库的访问,提高构建速度,同时...

    maven仓库 jar包

    在Java开发中,Maven仓库是一个至关重要的组成部分,它存储了大量的jar包,这些包包含了各种预编译的类和库,使得开发者无需从零开始构建项目。Maven仓库分为本地仓库、中央仓库和远程仓库,其中"maven-repository...

    maven仓库清理程序

    ** Maven仓库清理程序详解 ** Maven仓库是Java开发者在构建项目时不可或缺的一部分,它存储了项目的依赖库,包括JAR文件和其他构建资源。随着时间的推移,Maven仓库可能会积累大量的缓存文件,这些文件可能包括以"....

    maven仓库插件

    Maven仓库插件是Apache Maven项目的核心组成部分,它负责管理项目的依赖、构建工件并将其部署到指定的仓库。在Java开发领域,Maven已经成为了构建和管理项目的主要工具之一,其强大的依赖管理和生命周期管理功能使得...

    用Artifactory管理内部Maven仓库

    本篇文章将深入探讨如何使用Artifactory来管理内部Maven仓库。 首先,让我们了解Maven仓库的基本概念。Maven是一个广泛使用的Java项目管理和综合工具,它通过依赖管理简化了构建过程。Maven仓库存储项目的依赖项,...

    maven仓库清除工具.rar

    在Java开发过程中,Maven作为一款强大的构建工具,被广泛应用于项目管理,它负责管理项目的依赖、构建、打包等...对于大型项目或者团队开发来说,保持Maven仓库的整洁尤其重要,因为这直接影响到代码的编译和测试流程。

    Maven项目管理软件

    Maven是一款强大的Java项目管理工具,由Apache Software Foundation开发并维护,它在软件开发领域中扮演着至关重要的角色。Maven通过自动化构建过程,简化了项目的构建、依赖管理和文档生成,使得开发人员可以更加...

    Windows中Maven仓库管理工具:Nexus

    标题中的“Windows中Maven仓库管理工具:Nexus”指出,Nexus可以在Windows操作系统上运行,为开发者提供便捷的Maven仓库管理服务。Nexus不仅能够作为代理仓库,加速依赖下载,还支持创建私有仓库,用于存储和分发...

    maven的本地仓库jar包

    Maven是Java开发中的一款项目管理和构建工具,它通过依赖管理简化了项目的构建、测试和部署...综上所述,了解并熟练使用Maven的本地仓库对于Java开发来说至关重要,它确保了项目的构建一致性,并简化了依赖管理流程。

    maven修改本地仓库

    Maven 的一个重要特性是其对项目的生命周期管理和依赖管理的支持。在 Maven 构建过程中,会下载所需的依赖库并缓存到本地仓库中。 **本地仓库**:Maven 在构建项目时会将所有依赖的 jar 包以及项目构建出的 ...

    maven仓库清理脚本.zip

    Maven仓库是Maven存储依赖项、插件和其他构建资源的地方。随着时间的推移,这个仓库可能会积累许多不再需要或者下载不完整的文件,这些文件可能会占用大量磁盘空间,甚至可能导致构建问题。"maven仓库清理脚本.zip...

    Maven仓库配置全指南:设置与管理远程仓库地址

    本文深入探讨了Maven仓库配置的多个方面,从基本的仓库地址更改到代理、认证和本地仓库配置,再到高级的仓库管理工具和最佳实践,为读者提供了一个全面的Maven仓库配置参考。通过本文的指导,读者可以更加灵活和高效...

    Maven仓库镜像源.txt

    #### 五、配置Maven镜像源的重要性 - **提高下载速度**:通过设置国内的镜像源,可以显著提高依赖文件的下载速度。 - **降低服务器压力**:使用镜像源可以减少对官方服务器的压力,有助于提升整个Maven生态系统的...

    JBoss encore 工程和maven仓库

    在Encore工程中,Maven仓库存储了项目所需的各种依赖库,如JAR文件,确保了开发环境的一致性和可重复性。开发者可以通过配置Maven的pom.xml文件来指定所需的依赖,并自动下载到本地仓库中。 关于“repository.rar”...

    nexus构建maven仓库总结(完善版2)

    在软件开发过程中,管理依赖库是一项重要的任务,而Nexus作为一个强大的仓库管理器,能够有效地帮助我们完成这一任务。Nexus不仅可以作为代理服务器缓存远程Maven仓库的构件,还可以作为内部仓库存储和发布自定义的...

    java-maven本地仓库包大全

    总的来说,"java-maven-repository本地仓库包大全"是Java开发者的实用资源,它集成了大量常用的库和工具,通过有效的依赖管理和构建流程,提升了开发效率和项目的可维护性。在使用过程中,理解并熟练掌握Maven的工作...

    maven本地仓库清除无效jar包脚本

    然而,它不会影响Maven的依赖管理机制,因为Maven在下次构建时仍然会自动重新下载缺失的依赖。 总的来说,理解并正确使用这个脚本,可以帮助开发者更有效地维护他们的Maven本地仓库,确保项目始终能够顺利构建和...

Global site tag (gtag.js) - Google Analytics