【Maven】零基础入门+实操配置+面试高频知识点(最全总结)
·
Maven 简介
Maven 是 Apache 的开源项目管理工具,主要用于依赖管理和项目构建。
- 依赖管理:统一管理项目所需的 Jar 包。
- 项目管理:支持构建、编译、测试、打包、部署等全流程。
核心概念
仓库
- 本地仓库:存储从中央仓库或私服下载的 Jar 包,默认路径为
~/.m2/repository。 - 中央仓库:Maven 官方维护的公共仓库,包含绝大多数开源 Jar 包。
- 私服:企业内部搭建的仓库,用于缓存中央仓库的 Jar 包或托管私有依赖。
坐标
通过 groupId、artifactId、version 唯一标识一个依赖,示例:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
安装与配置
-
下载与解压
- 官网下载地址:https://maven.apache.org/
- 解压到无中文、无空格的路径(如
D:\apache-maven-3.5.4)。
-
配置阿里云镜像
修改conf/settings.xml,添加以下内容:<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>https://maven.aliyun.com/nexus/content/groups/public</url> </mirror> -
配置本地仓库路径
修改settings.xml中的<localRepository>标签:<localRepository>D:\mvn_repository</localRepository> -
环境变量(可选)
- 新建系统变量
MAVEN_HOME,值为 Maven 安装路径(如D:\apache-maven-3.5.4)。 - 在
Path中添加%MAVEN_HOME%\bin。 - 验证:命令行执行
mvn -v查看版本信息。
- 新建系统变量
IDE 集成(IntelliJ IDEA)
局部集成
- 路径:
File > Settings > Build, Execution, Deployment > Build Tools > Maven - 配置
Maven home path和User settings file为本地路径。
全局集成
- 同上,但配置会应用到所有项目。
项目结构
src/
|-main/
|-java/ # Java 源代码
|-resources/ # 配置文件
|-test/
|-java/ # 测试代码
target/ # 编译输出目录
pom.xml # 项目配置和依赖定义
依赖管理
- 添加依赖:在
pom.xml的<dependencies>标签内声明坐标。 - 下载失败处理:
- 删除
xxx.jar.lastUpdated文件后重新下载。 - 手动从其他仓库复制 Jar 包到本地仓库。
- 删除
生命周期
- 清理周期:
clean删除target目录。 - 默认周期:
compile编译源代码test运行单元测试package打包为 Jar/Warinstall安装到本地仓库deploy发布到远程仓库
依赖冲突解决
- 第一声明优先:调整依赖声明顺序。
- 路径近者优先:直接引用需要的版本。
- 排除依赖:通过
<exclusions>排除冲突的传递性依赖。<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.8.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions> </dependency> - 版本锁定:使用
<dependencyManagement>统一管理版本。<properties> <spring.version>5.2.0.RELEASE</spring.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement>
依赖范围(Scope)
| Scope | 主代码 | 测试代码 | 打包 | 示例 |
|---|---|---|---|---|
compile |
✔ | ✔ | ✔ | Spring |
test |
✖ | ✔ | ✖ | JUnit |
runtime |
✖ | ✔ | ✔ | JDBC 驱动 |
provided |
✔ | ✔ | ✖ | Servlet API |
模块化(聚合与继承)
- 父模块:打包类型为
pom,管理公共依赖和插件。<packaging>pom</packaging> <modules> <module>maven_dao</module> <module>maven_service</module> <module>maven_web</module> </modules> - 子模块:通过
<parent>标签继承父模块配置。
通过模块化可实现依赖复用和项目结构清晰化。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)