maven-part1

2.1简述及作用(1)

Maven:是一款优秀的项目管理工具。
作用:
项目构建管理(生命周期自动化)
依赖管理(针对jar包管理)
项目信息管理

2.2环境搭建(一次性配置)(1)
2.2.1安装及配置
解压压缩包到D盘根目录(注意尽量是某个盘符根目录,不要有中文,目录不要深)

只要不是C盘即可(因为C盘有管理员权限问题,没有管理员权限的同学,操作时,会导致maven更新jar包各种问题。)

如果没有C盘,自己插个U盘存maven
Maven仓库安装_jar包
环境变量配置:
1、JDK必须先搭建环境(JAVA_HOME / PATH)
2、Maven环境变量(MAVEN_HOME/PATH)
3、测试:CMD窗口: mvn –v 查看是否有版本号出现。

处理同学问题集锦:
Win10: 旗舰版、专业版都是允许的。
1、没有使用命令行,运行mvn -v 命令。
Win+R 输入cmd 敲回车,即可进入命令行
2、maven_home在path引用中加了空格
Maven仓库安装_java_02

3、maven_home在path引用中多了个分号。 (win10最后一个键值不能加;)

Maven仓库安装_其他_03

本地仓库:保存了本地要使用的所有jar包。若本地没有某个jar包,maven会自动从网上下载,下载完毕,保存到本地仓库中。
Maven仓库安装_java_04

如果没有设置本地仓库,maven自动设置本地仓库:
目录:用户目录/.m2/repository
Maven仓库安装_java_05
Maven仓库安装_jar包_06

2.2.2Idea的maven设置
Maven仓库安装_远程仓库_07

2.2.3创建项目卡顿的解决方案

配置信息:

-DarchetypeCatalog=local,internal

2.3Maven-idea项目创建【阶段重点】
2.3.1创建javaSE项目(骨架版创建)

Maven仓库安装_java_08
Maven仓库安装_其他_09
Maven仓库安装_远程仓库_10

Maven仓库安装_其他_11

若构建项目失败:
1、检查maven环境是否正确配置到idea(若未配置,使用默认idea自带maven配置,自带的maven配置是访问老的中央仓库,导致访问失败:Bad Request 501)
Maven仓库安装_jar包_12

2、本地仓库 jar包不完整导致 maven项目构建异常
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210122211900406.png)

使用脚本遍历本地仓库,发现不完整的jar包,就整体删除。
Maven若发现不完整jar包,导入/构建失败。
Maven若发现jar包不存在,重新下载。

Maven仓库安装_其他_13
Maven仓库安装_jar包_14
3、骨架不完整。
Maven仓库安装_maven_15

2.3.2创建WEB项目(骨架版创建)
Maven仓库安装_java_16
Maven仓库安装_远程仓库_17

Java目录:就是之前的src目录
Resource目录:存放之前src目录下所有的配置文件
web.xml需要替换成4.0
替换pom.xml文件
Maven仓库安装_远程仓库_18

这里的搜索会优先搜索本地仓库,若本地仓库没有,就从外网中央/镜像仓库进行下载

Maven仓库安装_maven_19
Maven仓库安装_jar包_20

Web执行方式2:

Maven仓库安装_jar包_21

无法正常部署tomcat的解决方案:
Maven仓库安装_远程仓库_22

1、声明前端web根目录位置
Maven仓库安装_远程仓库_23
Maven仓库安装_maven_24
Maven仓库安装_其他_25
Maven仓库安装_maven_26

2、手动构建war包依赖
Maven仓库安装_maven_27

3.Maven-其他知识
3.1maven的仓库(了解)
Maven仓库安装_远程仓库_28

Maven项目最终会从本地仓库中,引jar包。
若本地仓库不存在jar包,会从外网下载到本地仓库,再由本地仓库引入项目

远程仓库:需要通过网络连接的仓库。
中央仓库是远程仓库的一种,但因为境内没有服务器,访问速度慢,所以一般境内用户都是访问华为云、阿里云远程仓库。

从远程仓库下载文件时,若下载中断,会留下:lastUpdated 文件,该文件会导致下次使用时,文件不完整,无法引用,也无法下载最新jar包。
导致某个jar引用失败。
解决:清库脚本,进行清空,重新打开idea下载即可
若没有设置自动下载jar包,可以手动下载jar包:
Maven仓库安装_jar包_29

3.2maven的概念模型(了解)
每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。(一个maven项目就是一个POM对象)

依赖管理模型,管理jar包时,是根据jar包的坐标,来引入某个jar包的

从本地仓库导入jar包:
	Maven会先根据groupId在仓库中寻找文件夹(javax.activation) javax/activation
	Maven会再根据artifactId在当前文件夹中寻找项目名(activation)
	Maven最后根据version在当前文件夹中寻找版本号的目录(1.1)
	最终进入目录,导入jar包


若本地没有该jar包,从远程仓库进行加载,加载流程和本地仓流程一模一样。
找到jar包后,会把jar包下载到本地仓库,供maven引用。

若远程仓库也没有,最终maven报错。

Jar包管理中,都是根据jar包的坐标进行jar包管理。

项目的生命周期:清理、初始化、编译、测试、报告 、打包、部署、站点生成
Maven自动化操作:只需要点击maven提供的插件

3.3maven的坐标

groupId:定义当前Maven项目名称(我们可以理解为包名)
artifactId: 定义项目模块 (我们可以理解为项目名)
version:定义当前项目的当前版本

如何查询某个jar包的坐标:
https://mvnrepository.com/
Maven仓库安装_其他_30

打开详
Maven仓库安装_maven_31
Maven仓库安装_maven_32

将该版本坐标直接复制到pom.xml上即可
Maven仓库安装_其他_33

注意:坐标相同的情况不能出现,否则报错。

Maven仓库安装_maven_34

若自动下载失效:alt+insert,选择update maven indices
会自动更新本地仓库。
如果更新失败,先清库,再尝试这个流程即可

3.4maven创建自定义WEB项目(无骨架创建,适用于web项目创建失败的替代方案)【重点】
Maven仓库安装_maven_35
Maven仓库安装_远程仓库_36