Maven核心概念之仓库,生命周期与插件
2015-07-27 17:51
387 查看
宏观图
一、仓库
统一存储所有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中插件任务配置这三类,具体不赘述。相关文章推荐
- HDOJ 1272 小希的迷宫(并查集)
- operator 的主要用法
- RGB图像转换到CIELab空间的研究及优化
- Spring配置事务中的 transactionAttributes 各属性含义
- 【二分图匹配】poj1325Machine Schedule
- iOS方法和实例变量
- 全部清除和清除上一个(点击事件的应用)
- css 网站大背景(按比例缩放背景图片)
- Ural1109 Conference(二分图匹配)
- CXF实战之集成Spring(三)
- F - Faster, Higher, Stronger --- (first qualifying)
- Bomb(数位Dp)
- 关于 jspx 文件的一些说明
- listview中的textview如何自动跑马灯
- Climbing Stairs
- hihicoder 1192 : 简单的树嵌入 搜索
- angularjs controller的两种写法
- 线程绑定CPU核
- WPF MVVM绑定DateGrid的列的显隐性解决方案
- HDU 1232 - 并查集 解题报告