1. Maven简介
1.1Maven的功能
Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布……)
提供了一套依赖管理机制
标准化的项目结构:
Eclipse 、idea
不同IDE之间,项目结构不一样,不通用。用eclipse写的不可以导入idea中,而Maven可以提供标准项目结构。
提供了一套标准化的构建流程(编译,测试,打包,发布……)
IDE自带编译功能
Maven提供一套简单的命令来完成项目构建
编译:点击Maven项目右键,点击Run Maven,然后点击compile
打包:点击Maven项目右键,点击Run Maven,然后点击package
提供了一套依赖管理机制
依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。
1.2Maven模型
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
概括:Maven是一个工具
Maven模型:
可以通过各种插件来完成一些功能,可以用打包插件来打包项目等等。
项目对象模型:通过一些简短的描述信息(写在pom.xml),来描述通过当前Maven构建的项目。
依赖管理:是使用坐标来描述当前项目依赖哪儿些第三方jar包
仓库:可以给项目提供引用依赖
分类:
本地仓库:自己计算机上的一个目录
中央仓库:由Maven团队维护的全球唯一的仓库
地址: https://repo1.maven.org/maven2/
远程仓库(私服):一般由公司团队搭建的私有仓库
项目1需要A,先去本地仓库找,没有再去中央仓库找然后把A下载在本地仓库,最后从本地仓库给到项目1
有了私服后,先去本地仓库—>私服—>中央仓库
2. Maven安装配置
1. 解压apache-maven-3.8.1.zip 既安装完成
2.配置环境变量 MAVEN_HOME 为安装路径的bin目录
3. 配置本地仓库
修改conf/settings.xml 中的 为一个指定目录作为本地仓库,用来存储jar包
4.配置阿里云私服
2.1 Maven安装
解压 apache-maven-3.8.1.zip 既安装完成,最好不要放在C盘,建议解压缩到没有中文、特殊字符的路径下
2.2 配置环境
配置环境变量 MAVEN_HOME 为安装路径的bin目录
添加变量名和变量值(变量值是刚刚解压后的文件夹(IDEA已经下载好)放的位置)
在path中新建加入:%MAVEN_HOME%\bin
打开命令提示符进行验证,出现如图所示表示安装成功
2.3 配置本地仓库
修改conf/settings.xml 中的 为一个指定目录作为本地仓库,用来存储jar包
本地默认仓库位置:C:\Users\LWQ\.m2\repository
找到<localRepository>,把中间改为你要指定的本地仓库的目录,用来存储jar包
2.4 配置阿里云私服
修改 conf/settings.xml 中的标签,在<mirrors>标签中
添加:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
3. Maven基本使用
3.1 常用命令
compile :编译
clean:清理
test:测试
package:打包
install:安装
3.1.1 compile:编译
会下载一些编译插件
编译成功:
target产出的目标文件,存放src中java文件的字节码
3.1.2 clean:清理
会清理target目录
(下载clean的插件)
3.1.3 test:测试
运行com.itheima.TsetMaven
3.1.4 package:打包
将java代码编译成字节码打成jar包
(下载package插件)
3.1.4 install:安装
将你当前的项目安装到本地仓库
在Maven仓库里面com中
3.2 Maven生命周期
Maven 对项目构建的生命周期划分为3套:
clean :清理工作。
default :核心工作,例如编译,测试,打包,安装等。
site : 产生报告,发布站点等。这套声明周期一般不会使用。
同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。
其他命令
4. IDEA使用Maven
4.1 IDEA配置Maven环境
创建一个空的项目
选择 IDEA中 File --> Settings,然后搜索 maven,更改这两个路径。
4.2 Maven坐标讲解
4.2.1 什么是坐标?
Maven 中的坐标是资源的唯一标识
使用坐标来定义项目或引入项目中需要的依赖
4.2.2 Maven 坐标主要组成
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
artifactId:定义当前Maven项目名称(通常是模块名称(表示功能),例如 order-service、goods-service)
version:定义当前项目版本号
4.3 创建Maven项目
点击Project Structure按钮
点击+号后,选第一个
可以更改名称,还有项目坐标。
目录结构,写一个输出语句
4.4 IDEA导入Maven项目
选择右侧Maven面板,点击 + 号
选中对应项目的pom.xml文件,双击即可
如果没有Maven面板,选择
View -->Appearance --> Tool Window Bars
配置 Maven-Helper 插件
选择 IDEA中 File --> Settings,选择 Plugins,搜索 Maven,选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept,重启 IDEA。
多了这几个按键。
5. 依赖管理
5.1 Pom.xml的坐标
Pom.xml中有当前的坐标
5.2 使用坐标引入jar包的步骤
在项目的 pom.xml 中编写 标签
在标签中使用引入坐标
定义坐标的 groupId,artifactId,version
前有用过的话会有提示,没有用过是没有提示。可以搜索mysql maven来找版本,可以找一些使用频率比较高的版本。
点击刷新按钮,使坐标生效
可以进行更改设置,每次更改都会自动生效。
File --> Setting --> Build --> Build Tools
5.3 快捷方式导入jar包的坐标
每次需要引入jar包,都去对应的网站进行搜索是比较麻烦的,接下来给大家介绍一种快捷引入坐标的方式
在 pom.xml 中 按 alt + insert,选择 Dependency(也是要有用过的版本)
5.4 依赖范围
通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。
如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。
Scope的取值范围:默认值:compile
运行是在打包后没有对应的jar包,比如在web打包后在lib中没有对应的jar包。