maven
一、核心作用(3个核心)
1.统一项目结构
2.维护项目的生命周期
3.维护jar包的依赖
二、核心基础(必懂3点)
-
核心配置文件:
pom.xml
Maven项目的唯一核心配置文件,位于项目根目录,所有依赖、构建规则、项目信息都在其中配置,IDEA中创建Maven项目会自动生成。 -
核心仓库(jar包的来源)
Maven的jar包都存放在仓库中,加载顺序:本地仓库→私服仓库(公司内部) →中央仓库(Maven官方,全球唯一)
本地仓库:默认在C盘用户目录.m2/repository,首次引入依赖会从中央仓库下载到本地,后续直接复用。
三、IDEA中高频操作(贴合你的开发场景)
你之前一直在IDEA中做MyBatis开发,以下是Maven在IDEA中的核心使用操作,直接落地:
- 创建Maven项目:IDEA→New→Project→Maven→选择JDK→直接创建(可勾选
Create from archetype选骨架,如webapp骨架做Web项目); - 添加依赖:在
pom.xml的<dependencies>标签内粘贴GAV依赖代码→右键项目→Maven→Reload Project(刷新Maven,自动下载jar包); - 核心构建操作:
- 方式1(可视化):IDEA右侧
Maven面板→展开项目→Lifecycle→双击对应命令(如compile/ package); - 方式2(命令行):IDEA底部Terminal→输入Maven命令(推荐,更高效);
- 方式1(可视化):IDEA右侧
- 打包MyBatis项目:执行
package命令→在项目target目录生成xxx.jar包; - 解决依赖问题:右键项目→Maven→Clean(清理编译文件)→Reload Project(重新加载),可解决90%的依赖爆红/缺失问题。
四、常用核心命令(开发高频6个)
命令在IDEA Terminal中直接执行,按构建流程排序,无需记复杂参数,基础开发用默认即可:
| 命令 | 作用 | 常用场景 |
|---|---|---|
mvn clean |
清理项目,删除target目录 | 重新构建前清理旧文件 |
mvn compile |
编译Java源码(src/main/java) | 验证代码语法是否正确 |
mvn test |
执行测试用例(src/test/java) | 单元测试 |
mvn package |
打包项目(生成jar/war) | 本地打包部署 |
mvn install |
打包并安装到本地仓库 | 自定义依赖供本地其他项目使用 |
mvn deploy |
打包并发布到私服仓库 | 公司内部项目发布 |
五、MyBatis项目极简POM.xml示例
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<junit-version>5.8.2</junit-version>
<mysql-jdbc-version>8.0.33</mysql-jdbc-version>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-jdbc-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.19</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.17</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>2.0.17</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
</dependencies>