一、仓库

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

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

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

如图:

Maven仓库的分类

三种仓库的布局:

二、插件与生命周期

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的。

将生命周期的阶段与插件目标互相绑定,就可以在特定的阶段完成具体的构建任务。

1.生命周期

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

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

具体详情可见:

2.插件

Maven的核心仅仅定义了抽象的生命周期,具体的任务是交由插件完成的,插件以独立的构建形式存在。

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

2.1插件目标

每一个功能就是一个插件目标,一个插件里可以有很多功能。

2.2插件绑定

Maven的生命周期与插件互相绑定,用以完成实际的构建任务。具体而言,是生命周期的阶段与插件的目标相互绑定。

插件绑定分为两类:

内置绑定:为了能让用户几乎不用任何配置就能构建Maven项目,Maven在核心为一些主要的生命周期阶段绑定了很多插件目标。用户通过命令行调用生命周期阶段的时候,对应的插件目标就会执行相应的任务。直接可以理解为默认绑定了一部分生命周期和插件,可以直接用,无需配置;

自定义绑定:用户根据自己的选择将某个插件目标绑定到生命周期的某个阶段,这种绑定方式能够在项目构建过程中执行更多更富特色的任务。

2.3插件配置

完成插件和生命周期的绑定后,用户还可以配置插件目标的参数,进一步调整插件目标所执行的任务,以满足项目需求 。大致分为命令行插件配置、POM中插件全局配置、POM中插件任务配置这三类,具体不赘述。

maven的仓库、生命周期与插件的更多相关文章

  1. Maven整理笔记の生命周期和插件

    项目构建的生命周期,其实软件开发人员每天都在干这个事,即项目清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等,可以说几乎所有项目的构建都可以映射到这样一个生命周期上. Maven的插件 ...

  2. Maven专题3——生命周期与插件

    三套生命周期 Maven有3套相互独立的生命周期,用户可以调用某个生命周期的阶段,而不会对其他生命周期产生影响. 每个生命周期包含一些有先后顺序的阶段,后面的阶段依赖于前面的阶段,意味着用户调用后面的 ...

  3. 项目构建之maven篇:6.生命周期与插件

    项目生命周期 清理 初始化 编译 測试 打包 部署 三套生命周期 1.clean pre-clean 运行一些须要在clean之前完毕的工作 clean 移除全部上一次构建生成的文件 post-cle ...

  4. 05 Maven 生命周期和插件

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

  5. Maven核心概念之仓库,生命周期与插件

    宏观图 一.仓库 统一存储全部Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(还有一种特殊的远程仓库,为节 ...

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

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

  7. maven生命周期和插件

    maven生命周期和插件 生命周期 maven的生命周期有三套,互相独立.每个生命周期含有不同阶段,常用如下 clean 清理项目 pre-clean 执行清理前需要完成的工作 clean 清理上一次 ...

  8. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  9. Maven的生命周期和插件

    首先解释下maven build等 Maven build是这个插件让你自己去配置执行目标的.Maven clean 清除上一次Maven执行的结果Maven generate-sources会根据p ...

随机推荐

  1. greenplum集群安装

    一.环境配置 1.地址分配 192.168.1.201 mdw master 192.168.1.202 sdw1 segment1 192.168.1.203 sdw2 segment2 2.创建用 ...

  2. vim中设置自动匹配括号和引号

    vim ~/.vimrc 在.vimrc中添加一下几行 inoremap ( () <LEFT> inoremap { {} <LEFT> inoremap [ [] < ...

  3. 使用butterknife zelezny插件时必须保证已导入butterKnife的库工程。

    使用butterknife zelezny插件时必须保证已导入butterKnife的库工程. 另外需要把光标定位到setContentView(R.layout.activity_main);中的a ...

  4. [UML]转:UML类图集中关系的总结

    转:http://blog.csdn.net/dragonpeng2008/article/details/6836448 在UML类图中,常见的有以下几种关系: 泛化(Generalization) ...

  5. vnc里鼠标拖动终端就会产生ctrl+c终端

    然后把有道词典给关了就好了...

  6. c#之xml

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...

  7. 使用label在winfrom中添加分割线

    1.水平分隔线:GroupBox2. 水平,垂直分隔: Lable (AutoSize = false, BorderStyle= Fixed3D , 还要调整Size的大小 水平调整Height = ...

  8. Adam 演示demo内容整理

    在这个6个多G的演示demo中,还是发现了不少东西. 这篇文章八卦向的东西比较多,不过支持abc格式的话,做Cutscene一下子多了很多可以用的东西. 1.在插件目录下发现了ABC格式的导入dll. ...

  9. jquery中ajax的使用

    Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进 ...

  10. HDU 4920 Matrix multiplication 矩阵相乘。稀疏矩阵

    Matrix multiplication Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...