maven是一个高度自动化的构建工具,在很多的项目开发过程中都用到maven,maven主要负责管理项目依赖关系以及jar包。运用了“约定优于配置”的思想,从而提高开发效率和管理秩序。下面谈一下maven中用到的几个重要概念。
一、坐标
什么是坐标?
在几何学上,坐标就是用来确定平面上唯一一个点的标识,而在maven中,坐标用来表示寻找到某个包的标识。
坐标的组成?
几何学上,坐标可能有x,y,z.....组成,而在maven中有
•groupId:组织标识(包名)
•artifactId:项目名称
•version:项目的当前版本
•packaging:项目的打包方式,最为常见的jar和war、earr三种
二、依赖管理
配置元素?
<span style="color:#ff0000;"><dependencies></span>
<!-- test -->
<span style="color:#ff0000;"><dependency></span>
<<span style="color:#ff0000;">groupId</span>>junit</groupId>
<<span style="color:#ff0000;">artifactId</span>>junit</artifactId>
<<span style="color:#ff0000;">version</span>>${junit-version}</version>
<<span style="color:#ff0000;">scope</span>>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
<scope>test</scope>
</dependency>
依赖范围?
1、test:测试依赖有效
2、compile:默认编译依赖范围
3、provided:已提供依赖范围
4、runtime:运行时提供
传递性依赖?
我们用到的很多jar,比如struts.jar等,他们的加载还需要依赖其他jar,而可能某个jar,依赖与struts.jar,这个时候,这三个jar直接就形成了传递依赖,就想继承一样,a继承于b,b继承于c,则a继承于c,当然对于依赖的传递,主要针对compile作用域传递
三、仓库管理
仓库:放粮食的地儿,自己的仓库,县城的仓库,国家的仓库,很形象的说明了仓库的意义,它就是用来放不同版本的jar已经他们之间依赖关系的。
自家的仓库(本地仓库):自己喜欢吃啥就放啥
县城的仓库(私服):放我们县人都喜欢吃的,南方人放米,北方人放面
国家的仓库(中央仓库):放中国人爱吃的,大米白面,面包少来,芝士少来。
四、生命周期
什么事生命周期?
从呱呱坠地,到长大成人,懂得人情世故、为人处世,再到驾鹤西去,就是一个生命周期,在maven中,就是项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤。
三大生命周期?
Maven有三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立",这三套生命周期分别是:
1、Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
2、 Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
3、Site Lifecycle 生成项目报告,站点,发布站点。