1,什么是Maven,它的定义。
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
项目管理:通过坐标(groupid,artifactId)来确定文件位置,合理管理依赖(jar包)。
//注释:groupId一般是团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,它以创建这个项目的组织 名称的逆向域名(reverse domain name)开头。Apache Software的项目有以org.apache开头的groupId。
artifactId在groupId下的表示一个单独项目的唯一标识符,实际对应项目的名称。
合理管理依赖:1简单传递依赖:{A->B->C}==》{ A->C}; 2最短路径优先原则: { A->B-C(0.1) A->C(0.2)}==》{A- >C(0.2) 3 第一声明优先原则:A->B->C(0.1) A->E->C(0.2)} ==》最终依赖C(0.1)
自动构建:实现创建、编译、测试、打包、部署。
2,maven的生命周期
验证—编译—测试—打包—验证—安装—部署
3,maven的优点
1,自动导入jar包解决jar包之间的依赖和冲突。
//注释:通过依赖导入jar包时的查找优先级:本地仓库->镜像地址->中央仓库
2,有一套自己的java项目管理标准,可以跨软件框架使用。比如:一个项目刚开始是用idea写的,后来换了一拨人用的 eclipse也可以。
3,统一维护jar包。
比如:有3个Java 项目,这些项目都不是maven风格。那么这3个项目,就会各自维护一套jar包。 而其 中有些jar包是相同的。而maven风格的项目,首先把所有的jar包都放在"maven仓库“ 里,然后哪个项目 需要用到这个jar包,只需要给出jar包的名称和版本号就行了。 这样jar包就实现了共享如图所示。