首先需要了解一下POM文件,它相当于是整个Maven项目的配置文件,由XML编写
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>first_Maven</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
以`project`为根节点,而`modelVersion`定义了当前模型的版本,一般是4.0.0
`groupId`、`artifactId`、`version`这三个元素合在一起,用于唯一区别每个项目,别人如果需要将我们编写的代码作为依赖,那么就必须通过这三个元素来定位我们的项目,我们称为一个项目的基本坐标,所有的项目一般都有自己的Maven坐标,因此我们通过Maven导入其他的依赖只需要填写这三个基本元素就可以了,无需再下载Jar文件,而是Maven自动帮助我们下载依赖并导入。
* `groupId` 一般用于指定组名称,命名规则一般和包名一致,比如我们这里使用的是`org.example`,一个组下面可以有很多个项目。
* `artifactId` 一般用于指定项目在当前组中的唯一名称,也就是说在组中用于区分于其他项目的标记。
* `version` 代表项目版本,随着我们项目的开发和改进,版本号也会不断更新
创建一个`dependencies`节点
<dependencies>
//里面填写的就是所有的依赖
</dependencies>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
一个项目依赖一般是存储在中央仓库中,也有可能存储在一些其他的远程仓库(私服),几乎所有的依赖都被放到了中央仓库中,因此,Maven可以直接从中央仓库中下载大部分的依赖(Maven第一次导入依赖是需要联网的),远程仓库中下载之后 ,会暂时存储在本地仓库,我们会发现我们本地存在一个`.m2`文件夹,这就是Maven本地仓库文件夹,默认建立在C盘,在下次导入依赖时,如果Maven发现本地仓库中就已经存在某个依赖,那么就不会再去远程仓库下载了。
导入依赖时会卡顿,建议换个仓库地址
打开IDEA的安装目录,找到`安装根目录/plugins/maven/lib/maven3/conf`文件夹,找到`settings.xml`文件,打开编辑,找到mirros标签,添加以下内容
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
如果我需要的依赖没有上传的远程仓库,而是只有一个Jar
**system**:作用域和provided是一样的,但是它不是从远程仓库获取,而是直接导入本地Jar包
<dependency>
<groupId>javax.jntm</groupId>
<artifactId>lbwnb</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>C://test.jar</systemPath>
</dependency>