1.概念与安装:
Maven是服务于java平台的自动化构建工具
1.1发展历程:
发展历程:Make->Ant->Maven->Gradle
1.2构建过程中的各个环节:
1 清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备
2 编译:将java源程序编程成class字节码文件
3测试:自动测试,自动调用junit程序
4报告:测试程序执行的结果
5打包:动态web工程打war包,java工程打jar包
6安装:Maven特定的概念------将打包得到的文件复制到”仓库“中的指定位置
7部署:将动态web工程生成的war包复制到servlet容器的指定目录下,使其可以运行
1.3安装Maven核心程序:
1 配置JAVA_HOME环境变量 (maven就是用java写的,因此JAVA_HOME必须要配置)
2 配置MAVEN_HOME环境变量 D:\apache-maven-3.6.1
3 配置Path %MAVEN_HOME%\bin\
1.4成功安装:mvn -v
1.5联网问题:
Maven的核心程序仅仅定义了抽象的生命周期,但是具体的工作必须要有特定的插件去完成。而插件本身并不在Maven的核心程序范围内。我们执行的maven命令如果用到某些插件,则先会在本地仓库查找,如果本地仓库查找失败,则会联网下载。如果下载失败则构建失败(ps:跟composer ,npm一个样 --_--! )
2.Maven的核心概念:
2.1约定的目录结构:
2.2为什么要遵守约定的目录结构?
Maven负责我们项目的自动化构建,以编译为例,Maven要自动进行编译,那么它必须知道java源文件保存在哪里。如果我们自己自定义的东西想要让框架或者工具知道,有两种方法:
(1) 以配置的方式明确告诉框架
(2) 遵守框架内部已经存在的约定
所以:约定 > 配置 > 编码
2.3常用的maven命令:(需在pom所在目录下运行)
mvn clean:清理
mvn compile:编译主程序
mvn test-comlile编译测试程序
mvn test 执行测试
mvn package:打包
2.4POM:
Project Object Model:项目对象模型,maven的核心配置文件
POM 中可以指定以下配置:(后面细讲)
项目依赖,插件,执行目标,项目构建 profile,项目版本,项目开发者列表,相关邮件列表信息
2.5坐标:
1.使用下面三个向量在仓库中唯一定位一个Maven工程
[1] groupid:公司或组织域名倒序+项目名
[2] artifactid:模块名
[3] version:版本
2.Maven工程的坐标与仓库中路径的对应关系:
2.6仓库:
1.仓库的位置:
打开 config/settings.xml 寻找 localRepository,默认值:用户名/.m2/repository
2.仓库的分类:
本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有的Maven工程服务
远程仓库:
(1)局域网:搭建在局域网中,为局域网内所有的Maven工程服务
(2)中央仓库:架设在Internet上
(3)中央仓库镜像:分担中央仓库的流量
3.仓库中保存的内容:
Maven自身所需要的插件
第三方框架或工具的jar包
我们自己开发的Maven工程