今天在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,翻译内容将于近几日发布。
分享到:
相关推荐
Java是一种高性能、跨平台的面向...自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。
Nexus3是由Sonatype公司推出的一款开源的Maven仓库管理工具,它为开发人员提供了稳定可靠的存储和分发Maven构件的环境。通过Nexus3,开发团队可以在本地网络中迅速访问所需的构件,从而显著提高构建过程的效率。 在...
IDEA如何配置SSM项目--【仓库管理系统】 # JAVAWEB 系列文章目录 ...本系列环境 环境 win11 工具 idea 2018 jdk 1.8 数据库 mysql5.5 ...关于环境的重要性,直接看上面的《IDEA如何配置JAVAWEB项目–【唐诗300首】》
基于SpringMVC+Spring+HBase+Maven搭建的Hadoop分布式云盘系统。使用Hadoop HDFS作为文件存储系统、HBase作为数据存储仓库,采用SpringMVC+Spring框架实现,包括用户注册与登录、我的网盘、关注用户 毕业设计是高等...
前端jquery、layui,后端 maven、springmvc、spring、mybatis,集成门诊管理、住院管理、统计管理、排班管理、仓库管理、药房管理等功能于一体的系统。 毕业设计是高等教育阶段学生在完成学业前所进行的一项重要...
现在呢,我新开辟了一个新项目,仓库地址为:这个项目我跟着大牛老师做一做,并且我会根据自己的理解进行代码的重构(我觉得有很多值得优化的点,还有就是支付,我还是想用原生的接入方式而不是课程中说的接入它的...
* maven中央仓库地址 [其他方式集成](https://search.maven.org/artifact/com.github.liuchengts/spring-boot-auth-starter) ``` <groupId>com.github.liuchengts</groupId> <artifactId>spring-boot-auth-...
Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 Gradle存储库 23 使用Spring 4.0.x和Gradle 24 2.4.3项目模块 25 核心 - spring-security-core.jar 25 远程处理 - spring-security-remoting.jar 25 Web - spring-...
但这个功能对很多App还是很重要的,考虑到这个功能的必要性和通用性,于是这个项目就这么诞生了。使用这个项目,一句代码实现Android应用自身检查更新。 功能特点 使用简单,只需一句代码即可; 不依赖第三方库; 不...
该项目孵化于百味云公司(bizwell.cn)企业内部环境,项目的通用性和可用性存在问题,目前提交的代码仅供参考,故推送至本仓库的 Preview 分支 现有如下已知问题,请各位看客注意: 绝大部分组件启动依赖 Disconf 作为...
重要日期 描述 2014年8月11日 第2版范例 五月27,2019 已针对Scala 2.12和2.13更新 六月18,2019 由提供的对Maven版本的新支持 十月12,2019 针对Scala 2.13.1,sbt 1.3.2和其他依赖项进行了更新。 现在也...