一、Maven仓库分类

  Maven中,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,它首先去查看本地仓库,如果本地仓库有此构件,则直接使用,如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,Maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。

  中央仓库是Maven核心自带的远程仓库,它包含了绝大部分开源的构件。

  企业内部通常会搭建私服为企业内部开发提供下载服务。

  私服是另一种特殊的远程仓库,为了节省的带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有的外部的远程仓库。内部的项目还能部署到私服上供其它项目使用。

1、本地仓库

本地仓库默认路径为.m2/repository/

也可以自定义本地仓库目录地址(本人设置为D:\Dev\Java\maven-repo\repository)

修改maven安装路径(D:\Program Files (x86)\Apache\apache-maven-3.5.2\)config文件夹下的settings.xml文件,设置localRepository元素的值为想要的仓库地址,例如:

<localRepository>D:/Dev/Java/maven-repo/repository</localRepository>

2、远程仓库

Maven需要构件的时候,先去本地仓库找,当无法从本地仓库找到时,就会从远程仓库下载到至本地仓库,对于Maven来说,本地仓库只有一个,远程仓库却可以配置多个。

3、中央仓库

由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个远程的仓库,Maven的安装文件自带了中央仓库的配置。

4、私服

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,他从私服请求,如果私服上不存在此构件,则从外部的远程仓库下载,缓存到私服上之后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构建也能从本地上传到私服上供大家使用。

使用私服的好处:

a.节省自己的外网带宽;大量的对于外部仓库的重复请求会消耗很大的带宽,利用私服代理外部仓库后,在外的重复构件下载得意消除,即降低外网带宽的压力。

b.加速Maven构建:不停的连接请求外部仓库是十分耗时的,但是Maven的一些内部机制(如快照更新)要求Maven在执行构建的时候不停的检查远程仓库数据,因此,当项目配置了很多外部仓库的时候,构建的速度会被大大的降低。使用私服可以很好的解决这一问题,当Maven只需要检查局域网内私服的数据时,构建的速度很够得到很大程度的提高。

c.部署第三方构件:当某个构建无法从任何一个外部仓库获得,怎么办?这样的例子有很多,如组织内部生成的私有构建肯定无法从外部仓库获得。建立私服后,便可以将这些购进部署到内部的仓库中,供内部的Maven项目使用。

d.提高稳定性、增强控制:Maven的构建高度依赖于远程仓库,因此,当Internet不稳定的时候,Maven的构建也会变得不稳定,甚至无法构建。使用私服后,即使暂时没有Internet连接,由于私服中已经缓存了大量构件,Maven也依然可以正常运行。

e.降低中央仓库的负荷:中央仓库的压力非常大,建立私服之后,私服只需要去中央仓库下载一次。

为了简化Maven本身的配置,可以将所有的配置集中到私服,对于组织内部的Maven用户来说,使用一个私服地址就等于使用了所有需要的外部仓库。这种情况下,任何需要的构件都可以从私服获得,私服就是所有仓库的镜像,这时可以配置这样一个镜像,如下所示:

   <mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

这里我们配置的镜像为阿里的私服。

照葫芦画瓢系列之Java --- Maven的配置的更多相关文章

  1. 照葫芦画瓢系列之Java --- Maven的集成和使用

    一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...

  2. 照葫芦画瓢系列之Java --- Maven的介绍和安装

    一.Maven是什么? Maven 是一个项目管理工具.它负责管理项目开发过程中的几乎所有的东西. 版本 maven有自己的版本定义和规则 构建 maven支持许多种的应用程序类型,对于每一种支持的应 ...

  3. 照葫芦画瓢系列之Java --- eclipse下使用maven创建Struts 2项目

    一.创建Maven项目 http://www.cnblogs.com/zhanqun/p/8425571.html 二.添加struts2核心依赖包以及其他依赖项 打开pom.xm配置界面 点击Add ...

  4. Java Maven项目之Nexus私服搭建和版本管理应用

    转载自:https://cloud.tencent.com/developer/article/1010603 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓 ...

  5. Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例)

    这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...

  6. [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  7. Java·Maven的安装与配置

    阅文时长 | 0.58分钟 字数统计 | 937.6字符 主要内容 | 1.引言&背景 2.Maven的下载与安装 3.Maven全局配置 4.Settings.xml文件的配置 5.远程仓库 ...

  8. Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装

    说明在前:本人用过的 luna  mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...

  9. 配置Glassfish服务器、部署Java web项目、Maven安装配置及JDK版本匹配性问题

    错误一:在win7上通过命令asadmin start-domain启动Glassfish服务器时报错(如下): Exception in thread "main" java.l ...

随机推荐

  1. 排序函数 sort() 和 高阶函数sorted()

    · sorted():该函数第一个参数iterable为任意可以迭代的对象,key是用于比较的关键字,reverse表示排序结果是否反转. · L.sort():该函数的三个参数和 sorted() ...

  2. Python的简单介绍

    0. 前言 最近在从头梳理Python的相关知识,有助于以后更好地学习新知识.这篇博客,我简单介绍一下Python语言的有关内容. 1. Python介绍 Python的创始人为荷兰人吉多·范罗苏姆( ...

  3. ubuntu默认的Python版本号修改

    ubuntu默认的Python是2.7版本的,键入Python3 就可以使用Python3.X版本.下面修改默认的Python版本, 1.删除/usr/bin 下的Python链接 sudo rm / ...

  4. Scala - Tips

    1- 运行scala命令,提示报错 问题现象: 在Windows7系统中安装scala后(直接安装MSI包,或者解压zip包添加环境变量的方式),执行scala命令报错,但可以执行scala -ver ...

  5. Python - 搭建Jupyter notebook环境

    1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...

  6. 微信小程序内嵌网页的一些(最佳)实践

    前言 3 个月前,微信小程序推出了 web-view 组件引发了一波小高潮,笔者所在的大前端团队写过一篇浅析,详情可见:浅谈微信小程序前端生态. 我们曾大胆猜想,这一功能,可能直接导致小程序数量增长迎 ...

  7. linux mint 安装 opencv2.4

    Download opencv https://github.com/opencv/opencv/tree/2.4 安装必要的依赖 sudo apt-get install build-essenti ...

  8. visual Studio 2017 扩展开发(三)《绑定快捷键到菜单项》

    如何将键盘快捷方式映射到自定义按钮,怎么使用快捷键启动自己创建的菜单,刚开始做的时候迷糊了,找了很久.可能也是因为刚开始做不是很明白,后面慢慢就懂了.其实非常简单的. 很多快捷键已经在Visual s ...

  9. UVa OJ 120

    Background背景 Stacks and Queues are often considered the bread and butter of data structures and find ...

  10. java 判断是否大于指定版本号

    判断 a.b.c 格式的版本大小: public boolean is_version_great_than(String version) { boolean result = false; if ...