一、什么是Maven?为什么要用它?
Maven:一个项目管理的综合工具,为开发人员提供了一个完整的生命周期框架。包含了一个项目对象模型(POM),一组标准集合,一个项目的生命周期,一个依赖管理系统,和用来运行定义在声明周期阶段中插件目标的逻辑。
本质:项目对象模型。
项目对象模型(POM)包括:
- 项目自身信息
- 项目运行所依赖的jar包信息
- 项目运行环境信息,比如jdk、tomcat
回想一下,我们在创建普通项目的时候,有时候需要导入很多jar包。如果只是一两个还好,一旦项目一大,jar包导入的越来越多,我们项目所占的空间也就十分大。我们利用maven来创建项目的最大优点就是,利用pom.xml中的依赖坐标就可以直接的去从中央仓库导入jar包到我们的项目中,极大的节省了空间开销。除此之外,maven还有以下优点:
- 可以直接写单元测试来测试我们的代码是否有问题
- 整合项目比较便捷
- 代码可重用
pom.xml中的依赖管理模型Dependency坐标,它至少有三个:公司组织名称、项目名、版本号。这三个缺一不可,只能多不能少。
Maven有两大核心功能:
- 依赖管理:Maven工厂对jar包的管理过程
- 一键构建:构建我们的web项目十分方便
二、Maven的组成
一个Maven项目应该是由以下四点组成的:
- 核心代码 src/main/java
- 配置文件 src/main/resources
- 测试代码 src/test/java
- 测试配置文件 src/test/resources
如果是web项目,src/main目录下还多了一个子路径webapp,里面包含了页面资源,例如js、css等
三、Maven的常见命令
- mvn clean 删掉target目录(删除本地编译的所有信息)
- mvn compile 将maven中的代码进行编译
- mvn test 编译测试代码部分
- mvn package 打包项目,生成一个war包在target目录下(在pom指定
<packaging>war</packaging>
) - mvn install 打包项目,并将项目打在本地仓库
四、Maven的生命周期
Maven的生命周期分三种:默认生命周期,清理生命周期与站点生命周期。
默认生命周期:
- 编译:compile
- 测试:test
- 打包:package
- 安装:install
- 发布:deploy
默认生命周期有点像一个人的生命,也就是说执行了后面的必定执行了前面的。
清理生命周期只有一个,就是clean
站点生命周期不常用,在此不做详解。