MVN--01

张开发
2026/4/3 15:57:54 15 分钟阅读
MVN--01
一、Maven 是什么核心定位Maven 是专门用于管理和构建 Java 项目的工具解决了传统 Java 开发的三大痛点项目结构不统一不同 IDEEclipse/IDEA项目结构不互通Maven 提供了一套标准化的项目结构构建流程不统一手动编译、测试、打包、发布效率低Maven 提供了标准化的构建流程依赖管理混乱手动导入 jar 包、处理版本冲突麻烦Maven 提供了一套依赖管理机制二、Maven 标准化项目结构Maven 规定了一套统一的项目目录结构所有 IDE 都遵循这个标准实现跨 IDE 兼容表格目录 / 文件作用maven-project项目根目录项目名称src源代码和测试代码根目录src/main/java项目源代码 Java 文件目录src/main/resources源代码配置文件目录如 xml、propertiessrc/main/webappWeb 项目核心目录存放 html、css 等src/test/java测试代码 Java 文件目录src/test/resources测试代码配置文件目录pom.xml项目核心配置文件Maven 的灵魂三、Maven 仓库体系Maven 的核心是「仓库」用来统一管理所有 jar 包依赖分为三类本地仓库 (Local Repository)你自己计算机上的一个目录用来缓存从远程下载的 jar 包避免重复下载可通过settings.xml自定义本地仓库路径中央仓库 (Central Repository)由 Maven 团队维护的全球唯一的公共仓库地址https://repo1.maven.org/maven2/包含了全世界绝大多数开源 Java 项目的 jar 包远程仓库 (私服) (Remote Repository)一般由公司 / 团队搭建的私有仓库用于内部项目的 jar 包管理也可作为中央仓库的镜像比如阿里云私服国内开发通常配置阿里云私服大幅提升 jar 包下载速度四、Maven 依赖管理坐标体系Maven 通过标准的坐标配置来管理所有依赖只需要简单配置就能自动下载 jar 包无需手动导入。核心坐标三要素以 MySQL 驱动为例xmldependency groupIdmysql/groupId !-- 项目组织/公司ID唯一标识 -- artifactIdmysql-connector-java/artifactId !-- 项目名唯一标识 -- version5.1.46/version !-- 版本号区分不同版本 -- /dependencygroupIdartifactIdversion全球唯一精准定位一个 jar 包只需要在pom.xml中添加这段配置Maven 会自动从仓库下载对应 jar 包五、Maven 常用命令这些是开发中最常用的 Maven 命令对应构建生命周期的不同阶段表格命令作用compile编译项目将src/main/java下的源代码编译为 class 文件clean清理项目删除之前编译生成的 target 目录test执行测试运行src/test/java下的所有单元测试用例package打包项目将项目编译、测试后打包成 jar/war 包install安装项目将打包好的 jar 包安装到本地仓库供其他项目依赖六、Maven 构建生命周期Maven 对项目构建的全过程做了标准化的生命周期划分分为 3 套独立的生命周期1. clean 生命周期清理工作阶段pre-clean→clean→post-clean作用清理项目删除编译生成的文件2. default 生命周期核心工作最常用阶段compile→test→package→install还有更多前置阶段核心规则同一生生命周期内执行后边的命令前边的所有命令会自动执行比如执行install会自动先执行compile、test、package无需手动逐个执行3. site 生命周期文档工作阶段pre-site→site→post-site作用生成项目报告、发布项目站点七、Maven 核心模型Maven 的整个工作流程基于一套核心模型所有操作都围绕这个模型展开pom.xml项目对象模型POM的载体Maven 的核心配置文件包含项目信息、依赖、构建配置等项目对象模型 (POM)Maven 对项目的抽象描述是所有操作的基础依赖管理模型 (Dependency)基于坐标体系管理项目所有依赖的 jar 包构建生命周期 / 阶段标准化的构建流程驱动整个项目的编译、测试、打包等操作插件 (Plugin)生命周期阶段的具体执行者每个阶段都对应一个插件来完成实际工作仓库存储所有 jar 包依赖的地方为依赖管理提供数据源

更多文章