所花时间:5小时
代码量:100
搏客量:2
了解到的知识点:
- Maven 核心概念
项目对象模型 (POM)
核心配置文件:pom.xml
定义项目信息、依赖、插件、构建配置等。
示例结构:
4.0.0
com.example
my-app
1.0.0
...
坐标 (Coordinates)
通过 groupId、artifactId、version 唯一标识一个依赖或项目。
仓库 (Repository>
本地仓库:默认在 ~/.m2/repository,缓存下载的依赖。
远程仓库:中央仓库(Maven Central)、私服(如 Nexus)。
2. Maven 生命周期
三大生命周期
clean:清理构建产物(如 target 目录)。
default (build):核心生命周期(编译、测试、打包等)。
site:生成项目文档和站点。
常用阶段 (Phase)
validate → compile → test → package → install → deploy
执行命令时会自动触发之前的阶段,例如 mvn install 会先执行 compile 和 test。
3. 依赖管理
junit
junit
4.13.2
test
依赖作用域 (scope)
compile(默认):编译、测试、运行都需要。
test:仅测试阶段有效(如 JUnit)。
provided:由 JDK 或容器提供(如 Servlet API)。
runtime:运行时需要,编译时不需要(如 JDBC 驱动)。
依赖冲突解决
最短路径优先:依赖树中路径短的版本优先。
声明优先:先声明的依赖优先。
手动排除依赖:
4. 常用命令
mvn clean 清理 target 目录
mvn compile 编译源代码
mvn test 运行单元测试
mvn package 打包(JAR/WAR)
mvn install 安装到本地仓库
mvn deploy 部署到远程仓库
mvn dependency:tree 查看依赖树
5. 插件 (Plugins)
Maven 功能通过插件实现,例如:
Compiler 插件:配置 Java 版本:
Surefire 插件:运行单元测试。
Assembly 插件:生成自定义分发包。
6. 多模块管理
父 POM:聚合多个子模块,统一管理依赖和插件。
子模块:继承父 POM 的配置,减少重复。
7. 镜像仓库配置
在 ~/.m2/settings.xml 中配置镜像加速下载: