宏观图

一、仓库

统一存储全部Maven项目共享的构建的位置就是仓库。

仓库分为本地仓库和远程仓库。远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(还有一种特殊的远程仓库,为节省宽带和时间,在局域网内架设的一个私有的仓库server,用其代理全部的外部的远程仓库。内部项目也能部署到伺服上),其它公开的远程仓库(常见的由Java.net Maven库,Jboss Maven库)。

Maven依据坐标寻找构件的时候,它首先会查看本地仓库,假设本地仓库存在此构件,则直接使用;假设本地仓库不存在此构件,maven就会去远程仓库查找,发现须要的构件后。下载到本地仓库再使用。

如图:

Maven仓库的分类

三种仓库的布局:

二、插件与生命周期

Maven本质上是一个插件框架。它的核心并不运行不论什么详细的构建任务,只定义了抽象的生命周期,全部这些任务都交给插件来完毕的。

将生命周期的阶段与插件目标互相绑定,就能够在特定的阶段完毕详细的构建任务。

1.生命周期

Maven的生命周期是抽象的,这意味着生命周期本身不做不论什么实际的工作。在Maven的设计中。实际的任务都交由插件来完毕。生命周期抽象了构建的各个步骤。定义了它们的次序,利用插件机制详细实现。每一个构建步骤都能够绑定一个或多个插件行为。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" height="241" width="589">

Maven拥有三套相互独立的生命周期分别为clean,default,site。

详细详情可见:

2.插件

Maven的核心只定义了抽象的生命周期。详细的任务是交由插件完毕的。插件以独立的构建形式存在。

每一个插件都能至少完毕一个任务,一个任务即一个功能,将这些功能应用在构建过程的不同生命周期中。这样既能保证拿来即用。又能保证maven本身的繁杂和冗余。

2.1插件目标

每个功能就是一个插件目标,一个插件里能够有非常多功能。

2.2插件绑定

Maven的生命周期与插件互相绑定,用以完毕实际的构建任务。

详细而言,是生命周期的阶段与插件的目标相互绑定。

插件绑定分为两类:

内置绑定:为了能让用户差点儿不用不论什么配置就能构建Maven项目,Maven在核心为一些基本的生命周期阶段绑定了非常多插件目标。

用户通过命令行调用生命周期阶段的时候,相应的插件目标就会运行相应的任务。直接能够理解为默认绑定了一部分生命周期和插件。能够直接用。无需配置;

自己定义绑定:用户依据自己的选择将某个插件目标绑定到生命周期的某个阶段,这样的绑定方式可以在项目构建过程中运行很多其它更富特色的任务。

2.3插件配置

完毕插件和生命周期的绑定后,用户还能够配置插件目标的參数,进一步调整插件目标所运行的任务。以满足项目需求 。

大致分为命令行插件配置、POM中插件全局配置、POM中插件任务配置这三类。详细不赘述。

Maven核心概念之仓库,生命周期与插件的更多相关文章

  1. Maven学习(四)-- 生命周期和插件

    标签(空格分隔): 学习笔记 Maven生命周期是抽象的,不做任何实际的工作,在Maven的设计中,实际的任务都交由插件来完成. 每个构件步骤都可以绑定一个或者多个插件行为,而且Maven为大多数构建 ...

  2. Maven学习笔记(六):生命周期与插件

    何为生命周期:      Maven的生命周期就是为了对全部的构建过程进行抽象和统一.Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完好的.易扩展的生命周期.这个生命周期包括了项目的清 ...

  3. (二)Maven 基本概念——依赖、生命周期、仓库管理、聚合&继承

    1. 依赖配置 1.1 依赖配置主要包含如下元素: <!--添加依赖配置--> <dependencies> <!--项目要使用到junit的jar包,所以在这里添加ju ...

  4. Spring Framework核心概念之Bean生命周期管理

    目录 Spring Bean的生命周期 相关接口的分类 测试SpringBean生命周期的Demo程序 小结 Spring Bean的生命周期 Spring容器既Application或者WebApp ...

  5. maven的仓库、生命周期与插件

    一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...

  6. (十二)Maven生命周期和插件

    除了坐标.依赖以及仓库之外,Maven的另外两个核心概念是生命周期和插件.在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段packag ...

  7. Maven生命周期和插件机制

    Maven中的一个非常重要的概念是生命周期和插件,这篇文章重点介绍下Maven的生命周期. Maven的生命周期是抽象的,具体的功能是有具体的插件来完成的,Maven有相当多的功能插件,以至于Mave ...

  8. maven 核心概念

    1). 项目构建过程中的各个环节 . 清理 . 编译 . 测试 . 报告 . 打包 . 安装 . 部署 2). 配置环境变量 . 配置 JDK 配置 JAVA_HOME + PATH maven 需要 ...

  9. (转)Maven学习总结(四)——Maven核心概念

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(四)——Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Mav ...

随机推荐

  1. Linux内存管理中的slab分配器

    转载自:http://edsionte.com/techblog/archives/4019 Linux内核中基于伙伴算法实现的分区页框分配器适合大块内存的请求,它所分配的内存区是以页框为基本单位的. ...

  2. Python并发编程-守护进程

    守护进程 子进程转换为守护进程 主进程的代码结束,子进程的代码也应该接收, 这个事情有守护进程来做 守护进程会随着主进程的代码执行完毕而结束, 而不是随着主进程的接收而结束(子进程不一定结束) fro ...

  3. Python数据类型-集合(set)

    1.创建集合 集合的创建不同于前两种数据结构. 集合通过set(iterable)方法创建,参数iterable为可迭代对象. 示例代码: s1 = set('好好学习天天想上') # 将字符串分解为 ...

  4. Python数据类型-列表(list)增删改查

    1.添加元素 添加单个元素:使用append(object)函数可以为列表添加单个元素,参数object为对象:也就是说所有Python的对象都可以添加到列表中. 添加多个元素(合并列表):使用ext ...

  5. Cookie的用法

    string strCookie=""; //创建一个名为user HttpCookie userCookie=new HttpCookie("user"); ...

  6. String 字符串补0

    method1: 前提是你的长度已经确定!比如规定现实10位! - 优点: 不需要都是数字类型    String str_m =  "123X";  String str =&q ...

  7. PlayMaker GUI跟随布局的使用

    PlayMaker GUI跟随布局的使用   PlayMaker提供一种的特殊的GUI布局方式GUI Layout (Begin) Area Follow Object.这种布局可以在特定游戏对象上显 ...

  8. nyoj 737 石子合并 经典区间 dp

    石子合并(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述     有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆 ...

  9. 绘制bitmap 全屏 安卓获取 屏幕大小

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 绘制bitmap 全屏 Rectf rectF = new RectF(0, 0, w, ...

  10. 【最小割】BZOJ2039- [2009国家集训队]employ人员雇佣

    [题目大意] 给定n个人,每个人有一个佣金,i和j如果同时被雇佣会产生2*E(i,j)的效益,i和j如果一个被雇佣一个不被雇佣会产生E(i,j)的亏损,求最大收益. [思路] 如果没有亏损,其实非常类 ...