当前位置: 首页 > news >正文

深入解析:Maven入门指南:构建与管理Java项目

目录

Maven

一、什么是 Maven?

二、Maven 常见概念

2.1 Maven 构建生命周期

2.2 目录结构(约定优于配置)

2.3 坐标(GAV)

2.4 仓库(本地/中央/私服)

1. 本地仓库

2. 中央仓库

3. 私服

三、下载与安装 Maven

四、配置 Maven

五、pom.xml 使用

5.1 依赖管理(坐标引入 jar)

5.2 使用插件


Maven

一、什么是 Maven?

Maven 是一个用于 Java 项目的构建和依赖管理工具。它通过 pom.xml 文件自动下载所需 jar 包、统一项目结构,并提供标准化命令(如编译、打包、测试)来简化开发流程。

二、Maven 常见概念

2.1 Maven 构建生命周期

  • 清理(clean):删除旧的编译结果,为重新构建做准备。

  • 编译(compile):将 Java 源码编译成字节码文件(.class)。

  • 测试(test):运行单元测试,验证关键功能正确性。

  • 报告(report):生成测试结果报告,便于查看和分析。

  • 打包(package):将项目打包为 jar(Java 项目)或 war(Web 项目)文件。

  • 安装(install):将打包后的文件安装到本地 Maven 仓库,供其他项目依赖。

  • 部署(deploy):将包发布到远程仓库或部署到服务器运行。

2.2 目录结构(约定优于配置)

Maven 采用“约定优于配置”的理念,即:

只要按照默认的目录结构组织项目,就不需要额外配置,Maven 就能自动完成构建。


✅ 为什么需要约定目录?

  • Maven 要自动编译 Java 源码,就必须知道源文件在哪。

  • 编译后的字节码文件也需要一个固定位置存放。

  • 第三方工具或框架也需要知道资源(如配置文件、页面)的位置。

核心思想:

  1. 通过配置明确告知 → 手动指定路径(复杂,不推荐)

  2. 基于约定 → 按标准结构放文件,Maven 自动识别(简单高效)

“约定 > 配置 > 编码”:能用约定解决的,就不写配置;能用配置解决的,就不要写代码。

2.3 坐标(GAV)

在Maven世界中任何一个依赖、插件或者项目构建的输出都可以称为构件,任何一个构件都有一个坐标作为唯一的标识。

这个坐标就是:groupId、artifactId、version;

  • groupId:公司或组织的域名倒序+当前项目名称

  • artifactId:当前项目的模块名称

  • version:当前模块的版本

com.queen.web
queen-web
1.0.0-SNAPSHOT

根据这个坐标就可以定义其在仓库的唯一存储路径,那么就可以在项目中引用。

将groupId、artifactId、version三个连起来 com.queen.web+queen-web+1.0.0-SNAPSHOT 以连接起来的字符串作为目录结构去仓库中查找

com/queen/web/queen-web/1.0.0-SNAPSHOT/queen-web-1.0.0-SNAPSHOT.jar

注意:我们自己的Maven工程必须执行安装操作才会进入仓库,

安装命令:mvn install

2.4 仓库(本地/中央/私服)

1. 本地仓库
  • (Local Repository)

  • 位置:开发者本机,默认在 ~/.m2/repository(Windows:C:\Users\用户名\.m2\repository

  • 作用

    • 存储从远程仓库下载的依赖

    • 缓存自己安装(mvn install)的项目

  • 特点:每个开发者本地一份,不共享


2. 中央仓库
  • (Central Repository)

  • 由 Maven 官方维护,地址:https://repo1.maven.org/maven2/

  • 包含大量开源库(如 Spring、JUnit 等)

  • 无需配置,Maven 默认会从中央仓库下载缺失的依赖


3. 私服
  • (Private Repository / Remote Repository)

  • 公司内部搭建的仓库服务器(常用工具:Nexus、Artifactory)

  • 作用

    • 代理中央仓库,加速依赖下载(缓存)

    • 托管公司内部私有组件

    • 统一管控依赖版本和安全策略

  • 需在 settings.xmlpom.xml 中配置地址

三、下载与安装 Maven

  1. 下载地址 官网:https://maven.apache.org/download.cgi 推荐下载 Binary zip archive(如 apache-maven-3.x.x-bin.zip

  2. 安装步骤

    • 解压到任意目录(如 D:\tools\apache-maven-3.9.6

    • 配置环境变量:

      • 新建系统变量 MAVEN_HOME = D:\tools\apache-maven-3.9.6

      • Path 中添加 %MAVEN_HOME%\bin

    • 验证安装: 打开命令行,输入

      mvn -v

      能显示版本信息即成功。

四、配置 Maven

  1. 找到 Maven 安装目录下的 conf/settings.xml 文件 (路径示例:D:\tools\apache-maven-3.9.6\conf\settings.xml

  2. <mirrors> 标签内添加阿里云镜像配置:

    aliyunmaven   *   阿里云公共仓库   https://maven.aliyun.com/repository/public 

✅ 说明:

  • <mirrorOf>*</mirrorOf> 表示所有仓库请求都走阿里云镜像

  • 阿里云镜像同步了 Maven 中央仓库,速度快且稳定

五、pom.xml 使用

5.1 依赖管理(坐标引入 jar)

元素说明示例
groupId组织或项目所属的包名,通常为公司域名倒写org.springframework
artifactId具体的模块或 jar 包名称spring-webmvc
version依赖的版本号5.3.21

使用格式:

          org.springframework       spring-webmvc       5.3.21   

提示:

  • 三个元素缺一不可。

  • 可在 Maven Central 或 阿里云 Maven 搜索 查询正确坐标。

5.2 使用插件

Maven的生命周期

Maven中的插件

  • mvn clean清理

    进入项目根目录,执行「mvn clean」命令清理项目,清理项目的过程就是把执行「mvn compile」命令编译项目时生成的target文件夹删掉

  • mvn compile编译

    • 进入项目根目录执行 「mvn compile」命令编译项目java类

    • 编译成功之后,项目的根目录下多了一个「target」文件夹

  • mvn test 测试

    • 测试成功之后,项目的根目录下多了一个「target」文件夹

    • 执行测试时, Maven会自动执行编译过程

  • mvn package打包

  • 打包成功后,项目的根目录下的「target」文件夹中多了一个项目名-版本号.ja或war

  • mvn install项目部署

    • Maven 会对项目自动执行「清理」→「编译」→「测试」→「打包」过程

    • 同时将打包好的jar包发布到本地的Maven仓库中,平时这个命令使用最多

命令组合

maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的

  1. 先清理再编译:mvncleancompile

  2. 先清理再测试:mvncleantest

  3. 先清理再打包:mvncleanpackage

  4. 先清理再部署:mvncleaninstall

http://www.jsqmd.com/news/338445/

相关文章:

  • 中量元素水溶肥品牌 - 中媒介
  • 2026年制造业项目申报服务TOP5品牌推荐 - 优质品牌商家
  • 新疆水溶肥品牌 - 中媒介
  • 2026牛客寒假算法基础集训营1部分题解
  • Clang Static Analyzer Checker快速上手
  • leetcode 895. 困难题 Maximum Frequency Stack 最大频率栈
  • geo优化软件系统 - 中媒介
  • 游戏在 HarmonyOS 上如何“活”?
  • geo优化 - 中媒介
  • 北京geo优化软件系统 - 中媒介
  • 什么是向量单位化 (vector normalization)
  • 测试 kamailio v6.0.5 的 nats 模块(预处理)
  • Spring Framework源码解析——BeanUtils - 实践
  • 操作教程 | 使用开源三件套(OpenClaw+Ollama+1Panel)部署724运行的个人AI助理
  • 2026软件测试爆款指南:性能瓶颈手动检查实战与热点嫁接策略
  • 2026年租车厂家权威推荐榜:汽车租赁公司/租车行/绵阳婚庆租车/绵阳租车公司/绵阳租车平台/自驾租车/豪车租赁/选择指南 - 优质品牌商家
  • 2026年焕颜补水精华水优质产品推荐榜:玫瑰精华水、玫瑰精华爽肤水、精华保湿水、精华爽肤水、美白爽肤水、补水洗面奶选择指南 - 优质品牌商家
  • 【贝壳找房API】贝壳找房 (Beike) 数据采集指南
  • 覆盖天体物理/地球科学/流变学/声学等19种场景,Polymathic AI构建1.3B模型实现精确连续介质仿真
  • 全网整理!元宇宙领域头部公司有哪些
  • 乐天平台 (Rakuten) 数据采集指南
  • WebSocket+cpolar让实时通信不卡顿随时随地可用
  • 北京geo优化软件哪家靠谱 - 中媒介
  • 探讨轻量化AI模型的核心理念、主流技术路径,并对代表性模型进行详细对比
  • 2026年敏感肌适用温和洗面奶推荐榜 - 优质品牌商家
  • 2026川西北优质租车公司TOP5品牌推荐 - 优质品牌商家
  • _运维工程师_35_岁倒计时:别等被淘汰!网安黄金窗口期,转行最佳时期
  • 反光金属怎么扫更稳?三维扫描仪应对高反光硬件的实用处理方法与避坑指南 - 工业扫描笔记
  • Prometheus+Grafana构建云原生分布式监控系统(十五)_Prometheus中PromQL使用(二)
  • 组合计数