内容
1 Maven概念
2 Maven 入门 / 使用
3 Maven 小结
1.1.1 Maven概念
Maven 的正确发音是[ˈmevən]. Maven 在美国是一个口语化的词 语,代表专家、内行的意思。
定义 : Maven 是一个项目管理工具,它包含了一个项目对象模 型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑
1.1.2 Maven能解决什么问题
有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程,管理 jar 包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成 Web 站 点,Maven 就可以解决上面所提到的这些问题。
1.2 Maven 的两个精典作用
1.2.1 Maven的依赖管理
maven 工程中不直接将 jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需 jar 包的坐标,这样就很好的避免了 jar 直接引入进来,在需要用到 jar 包的时候,只要查找 pom.xml 文 件,再通过 pom.xml 文件中的坐标,到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从 而找到这些 jar 包,再把这些 jar 包拿去运行。
那么问题来了
第一:”存放 jar 包的仓库”长什么样?
第二:通过读取 pom.xml 文件中的坐标,再到仓库中找到 jar 包,会不会很慢?从而导致这种方式 不可行!
第一个问题:存放 jar 包的仓库长什么样,这一点我们后期会分析仓库的分类,也会带大家去看我们 的本地的仓库长什么样。
第二个问题:通过 pom.xml 文件配置要引入的 jar 包的坐标,再读取坐标并到仓库中加载 jar 包,这 样我们就可以直接使用 jar 包了,为了解决这个过程中速度慢的问题,maven 中也有索引的概念,通 过建立索引,可以大大提高加载 jar 包的速度,使得我们认为 jar 包基本跟放在本地的工程文件中再 读取出来的速度是一样的。
1.2.2 项目的一键构建
我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。 什么是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个 过程称为构建。
一键构建
指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。
通过 tomcat:run 的这个命令,我们发现现在的 工程编译,测试,运行都变得非常简单。
第2章 Maven 的使用
2.1.1 下载 安装 配置 目录解析
Libexec 目录下:
bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:run
boot:存放了一些 maven 本身的引导程序,如类加载器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件 lib:存放了 maven 本身运行所需的一些 jar 包
至此我们的 maven 软件就可以使用了,前提是你的电脑上之前已经安装并配置好了 JDK。
2.1.3 JDK的准备及统一
jdk1.8 || mvn 3.6.2 || mac os x 10.15 ||
2.2 Maven 仓库
2.2.1 Maven仓库的分类
- 本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找
默认本地仓库位置在 u s e r . d i r / . m 2 / r e p o s i t o r y , {user.dir}/.m2/repository, user.dir/.m2/repository,{user.dir}表示windows用户目录。 - 远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。 远程仓库可以在互联网内也可以在局域网内。
- 中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件。
user setting file 我的是隐藏的, 直接复制目录路径
新建工程如图:
右端 Maven . ?Plugins 栏目若报红, 点绿色箭头右边圈圈, 更新即可
在这里插入图片描述
遇到一个问题, 一直提示这个
没发现是格式问题么,你打错的(看上面的图) 一直提示 setting.xml 存在语法错误, 没想起来是 maven/config/setting.xml 这个文件 . 解决了
都是可以运行的
复制类全路径: “a.b.c” 的引用: 类 -> 右键 -> copy reference
总结 : 出问题, 看提示. 认真看. 按提示解决问题, 效果最好.
第 3 总结
3.1 maven 仓库
1、maven 仓库的类型有哪些? 2、maven 工程查找仓库的流程是什么? 3、本地仓库如何配置?
3.2 常用的 maven 命令
常用 的 maven 命令包括: compile:编译
clean:清理
test:测试
package:打包 install:安装
3.3 坐标定义
在 pom.xml 中定义坐标,内容包括:groupId、artifactId、version,详细内容如下:
cn.itcast.mavenmaven-first
0.0.1-SNAPSHOT< packaging > :打包类型
jar:执行 package 会打成 jar 包
war:执行 package 会打成 war 包
pom :用于 maven 工程的继承,通常父工程设置为 pom
3.4 pom 基本配置
pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下:
< project > :文件的根节点 .
< modelversion > : pom.xml 使用的对象模型版本 :项目名称,一般写项目的域名 :模块名称,子项目名或模块名称 :产品的版本号 .
< packaging> :打包类型,一般有 jar、war、pom 等 :项目的显示名,常用于 Maven 生成的文档。
< description > :项目描述,常用于 Maven 生成的文档 :项目依赖构件配置,配置项目依赖构件的坐标 :项目构建配置,配置编译、运行插件等。