主要作用就是进行项目的自动化构建和依赖管理
构建环节:清理 编译 测试 报告 打包 安装 部署
mvnrepository.com search.maven.org/进行maven的查找
repo.maven.apache.org/maven2 中央仓库
**
maven的9个核心
**
(1)是项目对象模型POM
(2)有约定的目的结构
(3)需要坐标来定位仓库里的包
groupId :公司域名倒叙+项目名字
artifactId:项目模块名字
version:版本
g/a/v/a-v.jar 就是文件的位置 用mvn install安装自己的项目进入仓库(在仓库中生成jar包和pom文件)
有三种工程:jar工程 pom工程(父工程) war工程
(4)依赖管理
依赖的范围:只有compile有依赖的传递性!!
1compile main和test目录下的java代码可以访问 也会部署 (是默认的范围)
2test main不能访问 test可以访问 不会部署
3provided main和test可以 不会部署
依赖的原则:路径最短者优先 路径相同时先声明者优先
<dependency>中用<exclusions>进行依赖排除(排除掉你依赖的项目中依赖的包中你不要的)
<properties>中用<spring.version>定义变量(定义版本号),用${spring.version}在version标签中引用
(5)仓库管理
本地仓库:本地电脑上的 默认仓库在C盘用户下.m2 repository中
远程仓库: 私服 中央仓库 中央仓库的镜像
仓库中的文件:Maven的插件 自己的项目模块 第三方框架或工具的jar包
安装的时候要先安装被依赖的项目
(6)生命周期
三套独立的生命周期:
(1)clean lifecycle :进行真正的构建前 进行一些清理工作
清理前 清理 清理后的操作
(2)Default lifecycle :构建的核心部分 编译 测试 打包 安装等
compile test-compile test package install deploy(只是主要的步骤 执行后面的步骤前面的会全部执行 但是install需要注意被依赖的要先安装 这里可以利用聚合的功能)
(3)Site lifecycle:生成项目报告 站点 发布站点
生成文档前 生成站点文档 生成站点文档之后的 将生成的站点文档部署在特定服务器上
(7)插件和目标
(8)继承
(9)聚合--》一键安装和清理
<modules><module></module></modules>标签进行聚合