一. Maven的概念
1 概念
maven是一个项目管理工具.
它包含了一个项目对象模型POM, 一组标准集合, 一个项目生命周期, 一个依赖管理系统.
2 Maven解决的问题
(1) 解决各种jar包冲突和版本冲突
(2) 将java 文件编译成电脑识别的二进制文件
(3) 可以把指定目录下单元测试一次性完成, 并告知哪些成功,哪些异常
(4) maven只需要一个命令就可以完成打包, 不用自己手动打包了
二. Maven的核心功能
1依赖管理
(1)节省了内存空间
(2)提高了代码的重用性
2 项目的一键构建
项目从编译, 测试, 运行,打包, 安装,部署的整个过程, 交给maven管理,称之为构建.
Maven的一键构建, 是指不使用本地安装的tomcat, 而使用Maven集成的tomcat.
两者区别:
使用Maven集成tomcat一键构建,只需要Maven一个命令: mvn tomcat:run
使用本地tomcat: ① 先将项目打包,放在tomcat安装目录下 webapps文件夹中
② 找到tomcat的bin目录下启动startup
三. Maven安装
1 安装
Maven的安装, 是一个安装包, 直接解压即可
2 配置Maven环境
(1)复制解压Maven安装包的路径 uri
(2) 右击计算机 --- 选择'属性' --- 高级系统设置 --- 环境变量 ---
在系统变量下,选择'新建' --- 变量名: MAVEN_HOME , 变量值: url --- 确定 ---
返回系统变量下,选在路径Path --- 新建 --- %MAVEN_HOME%\bin --- 确定
3 判断Maven环境变量设置是否成功
打开黑窗口 --- 输入命令mvn -v ---出现Maven home /Java version /Java home即成功
四. Maven核心功能详解
1 Maven的三类仓库: 本地仓库, 远程仓库, 中央仓库
Maven工程 : 放置jar包的坐标
Maven 项目创建时,maven默认会去系统盘找本地仓库
位置: conf --- settings.xml文件 --- 找到 Default: ${user.home}/.m2/repository
找不到本地仓库, 没联网会报错; 在联网的情况下, 自动去中央仓库下载jar包.(中央仓库放置了几乎所有开源的jar包);
在公司中, 往往会创建远程仓库(私服), 包含了公司所需的大部分jar包
(一部分是本地上传, 一部分是中央仓库下载),如没有,则会中央仓库下载.
2 Maven 标准目录结构
核心代码部分 src/main/java
配置文件备份 src/main/resources
测试代码部分 src/test/java
测试配置文件 src/test/resources
页面资源 src/main/webapps
3 Maven 的常用命令
mvn clean : 删除target目录, 将项目原有编译代码删除,因为原来的代码与自己电脑的编译环境不一定相同, 所以需要删除重新编译
mvn compile: 对代码重新编译正式源码
mvn test: 对正式代码和测试代码都进行了编译
mvn package: 不仅对正式代码和测试代码都进行了编译,还对项目打包.
pom.xml 指定了打包的类型: war/jar
如:<package>war<package>
mvn install: 不仅对正式代码和测试代码都进行了编译, 还对项目打包. 打在了本地仓库.
mvn deploy : 项目发布 (发布前,需要配置)
4 Maven 的生命周期
Maven三个生命周期:
(1) 默认生命周期: compile -- test --- package --- install --- deploy
(2) 清理生命周期: mvn clean
(3) 站点生命周期:
5 Maven的概念模型图
五. Idea创建Maven工程
1 idea 集成Maven
(1) 先判断本地是否成功安装Maven
步骤: 打开黑窗口 windows + r, 输入命令mvn -v
如下图表示则安装成功
(2) idea 配置Maven
Default Settings — Build,Execution,Deployment — Build Tools — Maven —选择安装好的maven路径和settings.xml 文件路径
(3) 在没联网的情况下, 新建项目, 能够找到曾经下载到本地仓库的jar包, 进行如下配置
Default Settings — Build,Execution,Deployment — Build Tools — Maven —Runner —
VM Option: DarchotypaCatalog-interual — Apply