
🎬 那我掉的头发算什么:个人主页
🔥 个人专栏: 《javaSE》《数据结构》《数据库》《javaEE》
⛺️待到苦尽甘来日

引言
当我们在创建一个新的idea项目时,不知道大家注意过没有
在这个页面中除了IntelliJ选项之外,还有一个Maven选项。而这个Maven恰好就是我们今天这篇文章的重头戏!
文章目录
- 引言
- 创建Maven项目
- pom文件
-
- 项目基本信息
- GAV
- properties
- 依赖管理核心:dependencies与dependency
- Maven的配置与使用
-
- 生命周期
- 下载依赖到本地仓库
-
- 新建Maven仓库
创建Maven项目

单单创建一个Maven项目其实很简单,只需要在原有的基础上把本来创建的idea项目改成Maven就好了。此处的GroupId和ArtifactId在工作中参与大项目时会使用到,表示组名和项目的一些信息。

创建完成后的项目中的目录与我们之前idea的目录差异很大,有了很多没见过的模块,比如:
- target:Maven构建项目后生成的输出目录,所有的编译、打包的结果都会在这里
- pom.xml:Maven 项目的核心配置文件,定义了项目的依赖、构建方式、插件、版本等关键信息。
- External Libraries 外部依赖:这里显示的是项目通过 Maven 引入的所有外部依赖库。
target目录下的内容其实可以全部删除,因为每一次刷新Maven这些东西就会通过Maven指令重新解析并且重新生成一遍,我们只需要其中有用的包就行。
当我们想要检查某一个依赖是否真的被加入到项目中,我们可以检查外部依赖,如果外部依赖里确实有,那就说明这个依赖被添加进去了。
pom.xml是Maven中一个非常重要的文件!
pom文件
这是一个简单的数据库依赖:
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>org.example</groupId> 8 <artifactId>maven-demo</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <properties> 12 <maven.compiler.source>17</maven.compiler.source> 13 <maven.compiler.target>17</maven.compiler.target> 14 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 15 </properties> 16 17 <dependencies> 18 <dependency> 19 <groupId>com.mysql</groupId> 20 <artifactId>mysql-connector-j</artifactId> 21 <version>9.3.0</version> 22 <exclusions> 23 <exclusion> 24 <artifactId>protobuf-java</artifactId> 25 <groupId>com.google.protobuf</groupId> 26 </exclusion> 27 </exclusions> 28 </dependency> 29 30 31 </dependencies> 32</project> 33
项目基本信息

前面这一部分都是对于项目的一些简介,里面包含了项目的一些基本信息。
GAV
1<groupId>org.example</groupId> 2<artifactId>maven-demo</artifactId> 3<version>1.0-SNAPSHOT</version> 4
这三个标签合称为Maven 的 GAV 坐标,是全球唯一标识一个项目 / 依赖的 “身份证”,无论在本地仓库还是中央仓库,Maven 都靠这三个值定位资源。
G:组织(团队名or公司名)
A:项目(项目名称)
V:版本
properties
1<properties> 2 <maven.compiler.source>17</maven.compiler.source> 3 <maven.compiler.target>17</maven.compiler.target> 4 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 5</properties> 6
properties是全局属性配置区,可以在这里定义 “公共变量”,作用是统一管理项目的基础配置,避免分散配置导致的不一致。
比如此处就定义了jdk的版本以及编码格式。
依赖管理核心:dependencies与dependency
1<dependencies> 2 <dependency> 3 <groupId>com.mysql</groupId> 4 <artifactId>mysql-connector-j</artifactId> 5 <version>9.3.0</version> 6 <exclusions> 7 <exclusion> 8 <artifactId>protobuf-java</artifactId> 9 <groupId>com.google.protobuf</groupId> 10 </exclusion> 11 </exclusions> 12 </dependency> 13 14 15 </dependencies> 16
这里我们也是通过其中的GAV坐标来定位依赖,比如此处使用的就是Mysql官方的JDBC驱动来进行数据的链接的一个依赖。Maven会自动的到官方地址去下载这个依赖到本地仓库。
Maven 有 “传递依赖” 机制:当你引入 A 依赖时,A 依赖本身依赖的 B、C 库也会被自动引入。
但有时候,传递依赖会带来问题(比如版本冲突、冗余依赖),这时候就需要exclusions排除不需要的传递依赖:
这里排除了com.google.protobuf:protobuf-java:说明mysql-connector-j:9.3.0本身依赖了protobuf-java,但你的项目不需要这个库(或者它和其他依赖版本冲突),所以通过exclusion强制排除。
Maven的配置与使用
生命周期

我们点击右边的图标就可以打开Maven操作界面了。
这一部分表示整个Maven的一个生命周期。不过我们平时只需要用到前五个就可以。

我们可以直接双击package代表执行除了clean前五个命令,最终会将项目打包成一个.jar包。
下载依赖到本地仓库

如图所示,我们刚开始尝试添加一个依赖的时候,肯定会出现上面这样的报红的情况。这是因为Maven检查了本地仓库之后发现不存在9.2.0这个版本的数据库依赖。此时我们可以点击刷新Maven ,让Maven下载依赖:

新建Maven仓库
我们的Maven在本地C盘中有一个默认仓库,一般是在C:\Maven.m2中。建议大家改到别的目录下,因为我们的依赖都会被下载到这里,久而久之会占用很大的存储空间。注意新建的Maven仓库要包含原仓库中的所有文件。

然后我们把这里的两个路径改成和我图中一样的路径即可。
此处的setting.xml中保存了Maven的一些基本设置等。正常来说Maven会到总仓库中下载依赖,但是这个服务器在国外,所以速度可能会有点慢,可以通过在settings.xml中配置国内镜像源把下载路径改到国内的云服务,下载速度会变快。
有需要的话可以私信我,我把我的setting.xml文件私发给你。
当然,Maven的用法不止这些,感兴趣的话,大家可以自行探索哦
以上就是本篇博客全部内容!
《【SpringBoot】从学会使用maven开始》 是转载文章,点击查看原文。
