一、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. php中的一些不常见的问题foreach/in_array[开发篇]

    php在开发效率很高,这是无可厚非的,但是却是在牺牲执行效率的.php数组功能非常强大,但是也要多加考虑,多试几种情况情况,以防万一,这里,我就简单的说两个遇到的坑,以后如果有发现更多的,再补上吧! ...

  2. 几个java小例子

    比较两个字符串的值: /*------------------------比较两个字符串的值----------------------*/ String st1="hello"; ...

  3. ARM debian的图形界面安装

    这里图形界面的安装比较简单,启动系统后,登录到root账户,首先要执行更新源的命令:apt-get update  然后直接执行下面的动作: 直接安装LXDE即可: 指令: apt-get insta ...

  4. Vue 中是如何解析 template 字符串为 VNode 的?

    在接触 React 时候,我只了解到通过 babel 可以把 JSX 转成 VNode(通过调用 React.createElement 方法),但是对其具体是如何转换的却不了解. 很明显,回答失败. ...

  5. Spring Boot最核心的27个注解,你了解多少?

    导读 Spring Boot方式的项目开发已经逐步成为Java应用开发领域的主流框架,它不仅可以方便地创建生产级的Spring应用程序,还能轻松地通过一些注解配置与目前比较火热的微服务框架Spring ...

  6. (转)EVMON_FORMAT_UE_TO_TABLES procedure - move an XML document to relational tables

    原文:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.8.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0054 ...

  7. Pulsar-Producer实现简介

    “Pulsar is a distributed pub-sub messaging platform with a very flexible messaging model and an intu ...

  8. Java集合及concurrent并发包总结(转)

    Java集合及concurrent并发包总结(转)   1.集合包 集合包最常用的有Collection和Map两个接口的实现类,Colleciton用于存放多个单对象,Map用于存放Key-Valu ...

  9. [Be a Coding Plasterer] Components 1:get Basic Things

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. Written In The Font I a ...

  10. 【干货】利用MVC5+EF6搭建博客系统(三)添加Nlog日志、缓存机制(MemoryCache、RedisCache)、创建控制器父类BaseController

    PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.回顾系统进度以及本章概要 目前博客系统已经数据库创建.以及依赖注入Autofac集成,接下来就是日志和缓存集成,这里日志用的是N ...