核心概念与架构
Maven 是一个基于 项目对象模型 (POM) 的 Java 项目管理和构建工具。
Maven 通过中央仓库、远程仓库和本地仓库的配合来管理项目的依赖。
- 本地仓库:位于
~/.m2/repository,存放已下载的依赖。 - 远程 (镜像) 仓库:如阿里云镜像,用于加速国内下载。
- 中央仓库:Maven 官方维护的默认仓库。
Coordinates:每个依赖由“三坐标”唯一确定
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>Properties:定义“全局变量”
properties 标签允许你定义一些常量,避免在 pom.xml 中多次硬编码相同的版本号。如果以后想升级版本,只需要改一个地方。
<properties>
<spring.version>6.1.0</spring.version>
<mysql.connector.version>8.0.33</mysql.connector.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>DependencyManagement:版本仲裁中心
这是父项目(Root POM)中最常用的标签。它的核心逻辑是:“声明但不引入”
- 不真正下载依赖: 在
dependencyManagement里写了依赖,Maven 不会去下载 jar 包。 - 统一版本: 子项目在引用这些依赖时,不需要写版本号。子项目会自动继承父项目中声明的版本。
- 灵活覆盖: 如果子项目确实需要一个特殊版本,可以直接在子 POM 中写明版本号,这会覆盖掉父项目的约定。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.10.0</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>标准项目结构
Maven 约定优于配置,统一的结构让项目迁移和协作极其简单。
.
├── pom.xml # 项目核心配置文件
└── src
├── main
│ ├── java # 业务 Java 源码
│ └── resources # 配置文件、静态资源
└── test
└── java # 单元测试源码
Maven 常用命令集锦
🚀 基础构建生命周期
| 命令 | 说明 |
|---|---|
mvn clean | 清理:删除 target 目录 |
mvn compile | 编译:编译主源码 |
mvn test | 测试:运行单元测试 |
mvn package | 打包:生成 jar 或 war 包 |
mvn install | 安装:将包发布到本地仓库,供本地其他项目引用 |
mvn deploy | 部署:将最终的包上传到私服/远程仓库 |
💡 进阶组合与参数
- 常用组合:
mvn clean install -DskipTests(清理并安装,跳过测试) - 多模块加速:
-pl <name>:指定构建某个模块。-am:同时构建所依赖的模块 (Also Make)。-T 4:使用 4 线程并行构建。
- 诊断工具:
mvn dependency:tree:查看依赖冲突必备。mvn help:effective-pom:查看最终生效的配置。
Spring Boot 专属命令
如果你正在进行 Spring Boot 开发,这两个命令非常高频:
mvn spring-boot:run:快速启动应用。mvn spring-boot:run -Dspring-boot.run.profiles=dev:指定运行环境。
环境配置与 IDEA 集成
⚙️ 本地安装
- 环境变量:设置
MAVEN_HOME,并在Path中添加%MAVEN_HOME%\bin。 - 修改
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>
</mirrors>🖥️ IDEA 最佳实践
- 设置:在
File | Settings | Build, Execution, Deployment | Build Tools | Maven中手动指定自己的 Maven 路径和settings.xml。 - 初始化:创建 Spring Boot 项目时,可将 Server URL 改为
https://start.aliyun.com以获得更快的响应。