Maven
一、小白入门
第一章、Maven概述
1、为什么要学习Maven?
1、Maven作为依赖管理工具
jar包的规模
1
随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多,项目中,一个模块里面要用到上百个jar包是非常正常的。
比如下面这个例子,我们只用到SpringBoot、SpringCloud框架中的三个功能:
- Nacos服务器注册发现
- Web框架环境
- 图模块技术Thyme leaf
最终导入了106个jar包
而如果使用Maven来引用这些jar包只需要配置三个【依赖】。
jar包的来源
jar之间的依赖关系
2、Maven作为构建管理工具
你没有注意过的构建
1
你可以不使用Maven,但是构建必须要做,当我们使用idea进行开发时,构建是idea替我们做的。
脱离IDE环境仍需构建
3、结论
- 管理规模庞大的jar白,需要专门的工具
- 脱离ide环境执行构建操作,需要专门的工具
2、什么是Maven?
Maven是Apache软件基金会组织维护的一款专门为java项目提供构建和依赖管理支持的工具。
1、构建
2、依赖
3、Maven的工作机制
第二章、Maven核心程序解压和配置
1、Maven核心程序解压和配置
1、Maven官网下载及解压
Maven官网:https://maven.apache.org/
windows:下载bin.zip/src.zip
linux:下载tar.gz
重点关注conf/settings.xml
bin/mvn.cmd 是mvn可执行文件
2、指定本地仓库
3、配置阿里云提供的镜像仓库
1 | <!--阿里云镜像1--> |
4、配置Maven工程的基础JDK版本
1 | <profiles> |
2、配置环境变量
1、检查JAVA_HOME配置是否正确
2、配置MAVEN_HOME
3、配置PATH
将MAVEN_HOME引用到path
4、验证
第三章、使用Maven:命令行环境
1、根据坐标创建Maven工程
1、Maven核心概念:坐标
2、实验操作
⑤解读生成的pom.xml
1 | <!-- project 标签:根标签,表示对当前工程进行配置、管理--> |
3、Maven核心概念:POM
4、Maven核心概念:约定的目录结构
2、在Maven工程中编写代码
1、主体程序
1 | package com.lxg.maven; |
2、测试主程序
测试类:
1 | package com.lxg.maven; |
3、执行Maven的构建命令
1、要求
2、清理工作
mvn clean
效果:删除target目录
3、编译操作
4、测试操作
mvn test
测试的报告存放的目录:target/surefile-reports
5、打包操作
mvn package
打包的结果—jar包,存放的目录:target
6、安装操作
4、创建Maven版的Web工程
1、说明
2、操作
3、生成的pom.xml文件
1 |
|
4、生成的Web工程的目录结构
5、创建Servlet
③在包下创建Servlet类
1 | package com.lxg.maven; |
1 | <servlet> |
6、在index.jsp页面编写超链接
1 | <html> |
7、编译
8、配置对servlet-api.jar包的依赖
1 | <dependency> |
9、将Web工程打包为war包
10、将war包部署到Tomcat上运行
将war包的解压包复制到tomcat的webapps目录下,然后启动tomcat服务器即可在浏览器访问
5、让Web工程依赖Java工程
1、观念
2、操作
在web工程的pom.xml文件中,找到dependencies标签,在标签中做如下配置
1 | <dependency> |
3、在web工程中,编写测试代码
4、执行Maven命令
6、测试依赖范围
1、依赖范围
部署到服务器是否有效取决于 会不会参与打包。
provided:已提供,说明服务器已经提供了,打包的时候就不要参与进去。
若是服务器已有的你还参与打包了就会发生冲突,常见会抛空指针异常或找不到类异常。
7、测试依赖的传递性
1、依赖的传递性
2、使用compile范围依赖spring-core
1 | <dependency> |
8、测试依赖的排除
1、概念
2、配置方式
1 | <dependency> |
3、测试
9、继承
1、概念
2、作用
3、举例
4、操作
1 | <modules> |
1 | <!-- 在父工程中统一管理依赖信息 --> |
1 | <dependency> |
1 | <!-- 通过自定义属性,统一指定Spring的版本 --> |
1 | <dependency> |
5、实际意义
10、聚合
1、聚合本身的含义
2、Maven中的聚合
3、好处
4、聚合的配置
5、依赖循环问题
第四章、使用Maven:IDEA环境
1、创建父工程
1、创建Project
2、配置Maven信息
3、创建Java模块工程
测试:
IDEA执行mvn命令的三种方式:
1、
2、
跳过test
-D表示后面要附加的参数,字母D和后面的参数是紧挨着的,中间没有任何其他的字符
3、
4、创建Web模块工程
运行:
5、其他操作
1、工程导入
2、模块导入
第五章、其他核心概念
1、生命周期
①作用
②三个生命周期
③特点