1.什么是Maven
①Maven是一款实现自动化构建的工具软件。
②构建:从源程序→程序的执行
清理→编译→测试→报告→打包→部署→执行
③构建工具:Make→Ant→Maven→Gradle...
④Maven的运行机制是主程序调用插件实现具体功能,需要的插件需要联网下载才能使用
通过修改解压目录/conf/settings.xml文件中的localRepository标签的值可以修改默认的仓库目录
2.Maven自动化构建机制
1项目对象模型 Project Object Model
将项目理解为一个对象模型进行管理,与项目构建相关的所有信息保存在pom.xml配置文件中
2约定的目录结构
Maven之所能实现自动化的编译、测试等操作是基于约定的目录结构
3坐标
①用于在Maven的世界中唯一的定位到某一个“构建”
②坐标的组成
<groupId>com.atguigu.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<package>jar</package>
4依赖管理
①Maven构建查找它所依赖的JAR包时会首先到本地仓库中查找,如果仓库中没有则报错。
所依赖的构建必须安装到仓库中才能够被其他构建所使用
②依赖的概念:当前构建需要用到的其他的构建
③依赖的实现:通过目标构建的坐标引用所依赖的构建
④依赖的范围:
依赖的目标构建对当前工程当中的哪些类有效
compile:表示当前工程中的所有的类都需要使用这个JAR包
test:表示当前工程中只有测试的类依赖这个JAR包
provider:表示当前工程只在开发阶段依赖这个JAR包,部署后这个JAR包会由容器提供
例如:servlet-api
⑤依赖的原则
[1]路径最短者优先
[2]路径相同时先声明者优先
5仓库管理
①如何在仓库中查找构建
groupId+artifactId+version
com\atguigu\maven\Hello\0.0.1-SNAPSHOT
②仓库概念:Maven所有的构建存储的位置
③存储的内容:Maven的构建
[1]Maven自身的插件
[2]软件开发过程中使用Maven构建得到的程序模块
[3]大量第三方提供的JAR包
④仓库分类
[1]本地仓库
(1)运行于用户本机
(2)为当前主机上的所有的Maven构建提供依赖支持
[2]远程仓库
      (1)私服:在局域网中搭建的一个服务器,为当前局域网中的Maven构建服务
共享第三方JAR包
共享项目中的公共模块
(2)中央仓库
Maven为全世界程序开发人员搭建的总的服务器
(3)镜像仓库
分担中央仓库的压力,在各个大洲建立的镜像服务器
⑤Maven从仓库中查找构建的原则:从小到大的范围
6生命周期
①概念:项目从清理、编译等环节直到部署到服务器上运行所经历的整个过程
②三套独立的生命周期
[1]清理:执行项目清理的各个环节
[2]默认:执行项目从编译到部署的各个环节
[3]站点:执行项目信息站点自动生成的各个环节
③特点:执行生命周期中的任何一个阶段,Maven都会从这个周期最初的环节开始执行,
直到指定的环节
7插件和目标
①插件:Maven的所有功能都不是由主程序执行的,具体功能都是由插件完成的。
主程序只起调度的作用。
②Maven的插件本身也是Maven的构建,所以需要到Maven的仓库中查找
③Maven中有一部分插件是与生命周期直接相关的。每个插件都会有多个目标,
每个目标对应生命周期中的一个阶段。
8聚合和继承
①继承:将POM文件中的重复内容抽取出来放到父POM中,简化配置文件,
同时对整个项目所有的依赖的版本进行统一管理
②聚合:将多个构建模块聚合为一个工程,安装聚合工程就可以全部自动安装

 

Maven基础笔记,原理的更多相关文章

  1. MAVEN学习笔记之基础(1)

    MAVEN学习笔记之基础(1) 0.0 maven文件结构 pom.xml src main java package resource test java package resource targ ...

  2. Maven基础学习笔记

    Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...

  3. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  4. php代码审计基础笔记

    出处: 九零SEC连接:http://forum.90sec.org/forum.php?mod=viewthread&tid=8059 --------------------------- ...

  5. JavaScript基础笔记二

    一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...

  6. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  7. REDIS基础笔记

    Redis基础笔记 资源链接 简介 简介 安装 五种数据类型及相应命令 1. 字符串类型 2. 散列类型 3. 列表类型 4. 集合类型 5. 有序集合 其他 事务 SORT 生存时间 任务队列 发布 ...

  8. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...

  9. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

随机推荐

  1. 莱卡旗下旗下首台全片幅无反相机 Leica SL 抵港,吐槽下

    http://cn.engadget.com/2015/11/18/leica-sl-hk-hands-on/#continued 单机+单镜头=7.5W¥,如果再来个定焦共10W¥+:有心杀贼,无力 ...

  2. split,slice,splice,replace的用法

    split()方法用于把一个字符串分割成字符串数组 str.split("字符串/正则表达式从该参数制定额地方分割str",可选,可指定返回数组的最大长度,如果没设置参数,整个字符 ...

  3. Map练习错误

    private Student findStuByNumber(String number) {              Student student=null ;       for(Stude ...

  4. markdown 语法测试

    understanding the linux kernel 绪论 linux支持.硬件依赖.版本 基于微内核的方法 支持内核线程 多线程应用支持 抢占式内核 硬件依耐性 file descripto ...

  5. html5高级

    Html5高级 项目回顾 Day 01 第三阶段知识体系: (1)AJAX异步请求 数据库.PHP.HTTP.原生AJAX.jQuery中的AJAX (2)HTML5高级特性 九大新特性 (3)Boo ...

  6. Codeforces Round #341 Div.2 C. Wet Shark and Flowers

    题意: 不概括了..太长了.. 额第一次做这种问题 算是概率dp吗? 保存前缀项中第一个和最后一个的概率 然后每添加新的一项 就解除前缀和第一项和最后一项的关系 并添加新的一项和保存的两项的关系 这里 ...

  7. Quant的笑话

    Q) Why was the FX quant so unlucky with the ladies?A) Because he always kept his dates short. Q) Why ...

  8. Android proguard 详解

    本文转载于:http://blog.csdn.net/banketree/article/details/41928175 简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往 ...

  9. mac电脑的使用

    1. control + command + a 截图 2. shift + command + g 前往 3.在 Mac OS X 中怎样获取当前文件夹的路径 原文网址:https://www.zh ...

  10. Linux-awk直接修改原文件

    #注意:重定向符号后面的文件名需要加双引号 awk '{print > "file"}' file