1、Maven 简介
什么是 Maven
Maven 是专门用于管理和构建 Java 项目的工具,它主要的功能有:
-
提供了一套标准化的项目结构 -
提供了一套依赖管理机制(不需要再去手动导入 jar 包) -
提供了一套依赖标准化的构建流程(编译,测试,打包,发布…..)
Maven 标准化项目结构
Maven 提供了一套标准化项目结构,所有的 IDE 使用 Maven 构建的项目结构完全一样,所有 IDE 创建的 Maven 项目也可以通用

2、Maven 仓库
仓库的分类
-
本地仓库:自己计算机上的一个目录
-
中央仓库:由 Mavne 团队维护的全球唯一的仓库
地址:https://repo1.maven.org/maven2
-
远程仓库(私服):一般由公司团队搭建的私有仓库
执行流程
当项目中使用坐标引入对应依赖 jar 包后,首先会查找本地仓库是否有对应的 jar 包
-
如果没有,则去中央仓库中下载对应的 jar 包到本地仓库 -
如果有,则在项目直接引用
搭建远程仓库,jar 包的查找顺序为
-
本地仓库 –> 远程仓库 –> 中央仓库
3、Maven 安装
Maven 属于绿色软件,解压即可安装
下载地址:Maven – 下载 Apache Maven
-
关注两个文件 -
bin/mvn.cmd 可执行文件 -
conf/settings.xml 配置文件 -
注意不要放在中文目录下
4、Maven 的配置
Maven 三种配置方法
-
配置本地仓库:修改 conf/settings.xml 中 55 行的
为一个指定目录 <localRepository>D:softwaremvn_resp</localRepository>
-
配置阿里云私服:修改 conf/settings.xml 中 160 行
标签,为其添加如下子标签 <mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> -
Maven 默认使用的是 jdk1.5 版本,在 188 行
标签可以修改,不改也一样可以,向上兼容的 <profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
5、IDEA 配置 Maven
点击 file -> Settings -> Build Execution Deployment -> Build Tools -> Maven
填入自己的 Mavne 地址

6、Maven 坐标
什么是坐标
-
Maven 中的坐标是资源的唯一标识 -
使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标的主要组成
-
groupId:定义当前 Maven 项目属于组织名称(通常反写域名) -
artifactId:定义当前 Mavne 项目名称 -
version:定义当前项目版本号
7、IDEA 创建 Mavne 模块
创建步骤
-
创建模块,选择 Maven,点击 Next -
填写模块名称,坐标信息,点击 finish,创建完成 -
编写 HelloWorld,测试运行
创建过程
选择新建项目点击 Maven

下方勾选可以修改模块名称和坐标信息

再点完成即可

8、Maven 依赖管理
使用坐标导入 jar 包
-
在 pom.xml 中编写
标签 <dependencies>
</dependencies> -
在
标签中使用 引入坐标 <dependencies>
<dependency>
</dependency>
</dependencies> -
定义坐标的 grupId,artifactld,version
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
</dependencies> -
点击刷新按钮,使坐标生效
image-20231103102157562
使用快捷方式引入 jar 包
-
在 pom.xml 中按 alt+insert,选中 Dependency
image-20231103102529924 -
在弹出的面板中搜索对应坐标,然后双击选中对应坐标
image-20231103102610833 -
点击刷新按钮,使坐标生效
image-20231103102704242
在线查询 jar 包依赖
-
通过官网:https://mvnrepository.com 搜索依赖
image-20231103103055376 -
选择对应的资源复制到 pom.xml 文件中即可
image-20231103103258702
注意:同样的 jar 包,后面配的会把前面配的替代掉
9、Maven 常用命令
IDEA 操作 Maven 命令
命令 | 说明 |
---|---|
mvn clean | 删除 target 目录 |
mvn compile | 编译 main 目录 |
mvn test | 执行 test 目录 |
mvn package | 打包到 target 目录下 |
mvn install | 安装到本地仓库中 |
案例演示
-
mvn clean
image-20231103144833351 image-20231103144924306 -
mvn compile
编译之后又会重新生成 target 目录
image-20231103145036723 -
mvn test
比较少在这边进行测试
image-20231103145719267 -
mvn package
打包完会在 target 生成一个 jar 包
image-20231103145940907
10、Maven 的生命周期
-
Maven 构建项目生命周期描述的是一次构建过程经历了多少事件
-
Maven 对项目构建的生命周期划分为 3 套
-
clean :清理工作 -
default:核心工作,例如:编译,测试,打包,安装等 -
site:产生报告,发布站点 -
在构建过程中是没办法跳过的
例如:我们进行测试,是没办法跳过编译,直接进行测试的
-
整体生命周期
image-20231103152139687
11、Maven 依赖管理
通过设置坐标的依赖范围(scope)可以设置对应 jar 包的作用范围
不设置的时候,默认就是 compile 的范围,也就是所有路径都能使用

依赖范围 | 编译类路径(main) | 测试类路径(test) | 运行类路径(target) | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | logback |
test | – | Y | – | Junit |
provided | Y | Y | – | servlet-api |
runtime | – | Y | Y | jdbc 驱动 |
代码演示
-
导入 druid
<!-- druid连接池依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
<scope>compile</scope>
</dependency> -
在什么都没有配置的情况下,main 目录和 test 目录都是能用的
image-20231103153646837 -
在 pom.xml 文件中添加作用域
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
<scope>test</scope>
</dependency> -
发现只有 test 目录能用了
image-20231103153842008
原文始发于微信公众号(小林学编程):JavaWeb:Maven 讲解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/219368.html