第一章 Maven介绍
1.1 什么是Maven
Maven是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
- 项目对象模型 (Project Object Model:一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。
- 依赖管理系统(Dependency Management System:通过maven的依赖管理对项目所依赖的jar 包进行统一管理。
- 一个项目生命周期(Project Lifecycle):使用maven完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期。
- 一组标准集合:maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。
- 插件(plugin)目标(goal):maven 管理项目生命周期过程都是基于插件完成的
1.2 Maven能解决什么问题
能构建工程,管理jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成Web站
注:maven构建的项目相较于普通项目,文件的大小要小很多,因为maven构建的项目没有把jar包拷贝到项目(工程)中。
1.3 Maven的两个核心作用
- Maven的依赖管理:Maven把项目所需要得jar包保存在Maven仓库里面,通过在pom.xml文件中添加所需jar包的坐标,在用到这些jar包时,会根据pom.xml中jar包的坐标把jar包引入进来拿去执行
注:maven中有索引,很大程度上提高了jar包的加载速度,所以可以认为maven仓库的jar包基本跟放在本地的工程文件中再读取出来的速度是一样的。 - 项目的一键构建:指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理,使用maven一个命令可以轻松完成整个工作。
1.4 Maven工程的目录结构
- src/main/java —— 存放项目的.java文件
- src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
- src/test/java —— 存放所有单元测试.java文件,如JUnit测试类
- src/test/r