一个自动化构建工具
问题
大的工程没法用package划分模块
多人或多项目组分功能开发不好管理
使用maven自动导入jar包和jar包的依赖包
构建工具发展
make-》Ant-》Maven-》Gradle
构建
以java源文件,框架配置文件,静态资源JS,CSS,HTML等,去生成一个可以运行的项目的过程。
构建的节点
清理:删除就当class字节码文件
编译
测试:maven自动测试,调用Junit
报告:测试程序的结果
打包:动态Web工程打包成war包,java工程打jar包
安装:maven特定的概念–将打包得到的文件复制到“仓库”的指定位置
部署:将动态web工程生成的war包复制到Servlet容器的指定目录下,使其能运行,一般时tomcat的目录下
maven核心概念
1.约定的目录结构
2.POM
3.坐标
4.依赖
5.仓库
6.生命周期/插件/目标
7.继承
8.聚合
maven常用命令
mvn clean:清理
mvn compile:编译
mvn test-compile:编译测试程序
mvn test:执行测试
mvnt package:打包
mvn install:把包放到maven仓库中
scop依赖的范围
compile:对主程序有效,对测试有效,参与打包
test:对主程序无效,对测试有效,不参与打包
provided:对主程序有效,对测试有效,不参与打包,不参与部署
生命周期
父工程
父工程的作用就是当某个大型项目需要几个分模块开发时,不可能手动的一个一个的去编译或者安装,同时也为了方便jar包和jar包版本的管理,所以就用父工程来做带头人,把关联的所有module项目管理起来,在父工程上运行clean或compile命令,其他子的module也都有效。
要注意父工程的packing方式时pom方式。
ok,差不多就这样吧!