照葫芦画瓢系列之Java --- Maven的配置
一、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的配置的更多相关文章
- 照葫芦画瓢系列之Java --- Maven的集成和使用
一.和Eclipse的集成 1.添加Maven 在windows--> preferences中找到maven选项,如下图: 如果没有上图的Name为apache-maven-3.5.2的项,则 ...
- 照葫芦画瓢系列之Java --- Maven的介绍和安装
一.Maven是什么? Maven 是一个项目管理工具.它负责管理项目开发过程中的几乎所有的东西. 版本 maven有自己的版本定义和规则 构建 maven支持许多种的应用程序类型,对于每一种支持的应 ...
- 照葫芦画瓢系列之Java --- eclipse下使用maven创建Struts 2项目
一.创建Maven项目 http://www.cnblogs.com/zhanqun/p/8425571.html 二.添加struts2核心依赖包以及其他依赖项 打开pom.xm配置界面 点击Add ...
- Java Maven项目之Nexus私服搭建和版本管理应用
转载自:https://cloud.tencent.com/developer/article/1010603 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓 ...
- Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例)
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
- [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world
[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...
- Java·Maven的安装与配置
阅文时长 | 0.58分钟 字数统计 | 937.6字符 主要内容 | 1.引言&背景 2.Maven的下载与安装 3.Maven全局配置 4.Settings.xml文件的配置 5.远程仓库 ...
- Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装
说明在前:本人用过的 luna mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...
- 配置Glassfish服务器、部署Java web项目、Maven安装配置及JDK版本匹配性问题
错误一:在win7上通过命令asadmin start-domain启动Glassfish服务器时报错(如下): Exception in thread "main" java.l ...
随机推荐
- JS 取消iOS播放自动全屏:
iOS下浏览器模式下h5播放器强制是全屏的,除非在app下才可以非全屏播放,需要两个配置: (1)播放器添加参数: playsinline:true(我使用的是阿里云的播放器,其他的需要自己找找是那个 ...
- Android--UI之GridView
前言 这篇博客介绍一下Android平台下,GridView控件的开发.针对GridView控件的一些常用属性.方法,以及注意事项进行讲解,最后将以一个Demo展示GridView控件的使用. Gri ...
- NuGet包和功能
Microsoft.AspNetCore.Razor.Tools:提供TagHelper的智能感知提示和代码加粗高亮显示. Microsoft.AspNetCore.Session:管理会话状态的中间 ...
- yum源配置
我这里使用的centos7操作系统. 下载地址是:https://www.centos.org/download/ yum仓库的创建可以参考: http://www.cnblogs.com/zhaoj ...
- 我们来说一说TCP神奇的40ms
本文由云+社区发表 TCP是一个复杂的协议,每个机制在带来优势的同时也会引入其他的问题. Nagel算法和delay ack机制是减少发送端和接收端包量的两个机制, 可以有效减少网络包量,避免拥塞.但 ...
- linux读书笔记1
(1)进入控制台命令快捷键:Ctrl+alt+F1~F7
- 动态代理实现AOP
代理 代理顾名思义:代为处理.不是对目标对象的直接操作,而是通过代理对目标对象进行包装,此时可以在目标对象的基础上添加额外的操作以满足业务需求.图示 分类:动态代理.静态代理. 代理三要素:共同接口. ...
- log4j-1.2.6升级到log4j-2.9.0
0.工程是普通java web工程,不是maven工程.需要升级log4j 步骤发下: 1. 在build path中 移除项目对log4j-1.2.6.jar的引用,并物理删除log4j-1.2.6 ...
- c# 大批量用户访问数据库报错
报错信息:There is already an open DataReader associated with this Connection which must be closed first ...
- npoi实现数据导出Excel
npoi .NET第三方的Office功能组件. 链接地址 http://npoi.codeplex.com/ 引用命名空间 using NPOI.HSSF.UserModel; using ...