【SpringBoot】从学会使用maven开始

作者:那我掉的头发算什么日期:2026/1/17

在这里插入图片描述

🎬 那我掉的头发算什么个人主页

🔥 个人专栏: 《javaSE》《数据结构》《数据库》《javaEE》

⛺️待到苦尽甘来日


在这里插入图片描述

引言

当我们在创建一个新的idea项目时,不知道大家注意过没有

在这里插入图片描述
在这个页面中除了IntelliJ选项之外,还有一个Maven选项。而这个Maven恰好就是我们今天这篇文章的重头戏!

文章目录

  • 引言
  • 创建Maven项目
  • pom文件
    • 项目基本信息
    • GAV
    • properties
    • 依赖管理核心:dependencies与dependency
  • Maven的配置与使用
    • 生命周期
    • 下载依赖到本地仓库
      • 新建Maven仓库

创建Maven项目

在这里插入图片描述

单单创建一个Maven项目其实很简单,只需要在原有的基础上把本来创建的idea项目改成Maven就好了。此处的GroupId和ArtifactId在工作中参与大项目时会使用到,表示组名和项目的一些信息。

在这里插入图片描述

创建完成后的项目中的目录与我们之前idea的目录差异很大,有了很多没见过的模块,比如:

  • target:Maven构建项目后生成的输出目录,所有的编译、打包的结果都会在这里
  • pom.xml:Maven 项目的核心配置文件,定义了项目的依赖、构建方式、插件、版本等关键信息。
  • External Libraries 外部依赖:这里显示的是项目通过 Maven 引入的所有外部依赖库。

target目录下的内容其实可以全部删除,因为每一次刷新Maven这些东西就会通过Maven指令重新解析并且重新生成一遍,我们只需要其中有用的包就行。
当我们想要检查某一个依赖是否真的被加入到项目中,我们可以检查外部依赖,如果外部依赖里确实有,那就说明这个依赖被添加进去了。

pom.xml是Maven中一个非常重要的文件!

pom文件

这是一个简单的数据库依赖:

1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="http://maven.apache.org/POM/4.0.0"
3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5    <modelVersion>4.0.0</modelVersion>
6
7    <groupId>org.example</groupId>
8    <artifactId>maven-demo</artifactId>
9    <version>1.0-SNAPSHOT</version>
10
11    <properties>
12        <maven.compiler.source>17</maven.compiler.source>
13        <maven.compiler.target>17</maven.compiler.target>
14        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15    </properties>
16
17    <dependencies>
18        <dependency>
19            <groupId>com.mysql</groupId>
20            <artifactId>mysql-connector-j</artifactId>
21            <version>9.3.0</version>
22            <exclusions>
23                <exclusion>
24                    <artifactId>protobuf-java</artifactId>
25                    <groupId>com.google.protobuf</groupId>
26                </exclusion>
27            </exclusions>
28        </dependency>
29
30
31    </dependencies>
32</project>
33

项目基本信息

在这里插入图片描述

前面这一部分都是对于项目的一些简介,里面包含了项目的一些基本信息。

GAV

1<groupId>org.example</groupId>
2<artifactId>maven-demo</artifactId>
3<version>1.0-SNAPSHOT</version>
4

这三个标签合称为Maven 的 GAV 坐标,是全球唯一标识一个项目 / 依赖的 “身份证”,无论在本地仓库还是中央仓库,Maven 都靠这三个值定位资源。

G:组织(团队名or公司名)
A:项目(项目名称)
V:版本

properties

1<properties>
2    <maven.compiler.source>17</maven.compiler.source>
3    <maven.compiler.target>17</maven.compiler.target>
4    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5</properties>
6

properties是全局属性配置区,可以在这里定义 “公共变量”,作用是统一管理项目的基础配置,避免分散配置导致的不一致。
比如此处就定义了jdk的版本以及编码格式。

依赖管理核心:dependencies与dependency

1<dependencies>
2        <dependency>
3            <groupId>com.mysql</groupId>
4            <artifactId>mysql-connector-j</artifactId>
5            <version>9.3.0</version>
6            <exclusions>
7                <exclusion>
8                    <artifactId>protobuf-java</artifactId>
9                    <groupId>com.google.protobuf</groupId>
10                </exclusion>
11            </exclusions>
12        </dependency>
13
14
15    </dependencies>
16

这里我们也是通过其中的GAV坐标来定位依赖,比如此处使用的就是Mysql官方的JDBC驱动来进行数据的链接的一个依赖。Maven会自动的到官方地址去下载这个依赖到本地仓库。

Maven 有 “传递依赖” 机制:当你引入 A 依赖时,A 依赖本身依赖的 B、C 库也会被自动引入。
但有时候,传递依赖会带来问题(比如版本冲突、冗余依赖),这时候就需要exclusions排除不需要的传递依赖:
这里排除了com.google.protobuf:protobuf-java:说明mysql-connector-j:9.3.0本身依赖了protobuf-java,但你的项目不需要这个库(或者它和其他依赖版本冲突),所以通过exclusion强制排除。

Maven的配置与使用

生命周期

在这里插入图片描述
我们点击右边的图标就可以打开Maven操作界面了。
这一部分表示整个Maven的一个生命周期。不过我们平时只需要用到前五个就可以。
在这里插入图片描述
我们可以直接双击package代表执行除了clean前五个命令,最终会将项目打包成一个.jar包。

下载依赖到本地仓库

在这里插入图片描述
如图所示,我们刚开始尝试添加一个依赖的时候,肯定会出现上面这样的报红的情况。这是因为Maven检查了本地仓库之后发现不存在9.2.0这个版本的数据库依赖。此时我们可以点击刷新Maven ,让Maven下载依赖:
在这里插入图片描述

新建Maven仓库

我们的Maven在本地C盘中有一个默认仓库,一般是在C:\Maven.m2中。建议大家改到别的目录下,因为我们的依赖都会被下载到这里,久而久之会占用很大的存储空间。注意新建的Maven仓库要包含原仓库中的所有文件。
在这里插入图片描述
然后我们把这里的两个路径改成和我图中一样的路径即可。
此处的setting.xml中保存了Maven的一些基本设置等。正常来说Maven会到总仓库中下载依赖,但是这个服务器在国外,所以速度可能会有点慢,可以通过在settings.xml中配置国内镜像源把下载路径改到国内的云服务,下载速度会变快。
有需要的话可以私信我,我把我的setting.xml文件私发给你。

当然,Maven的用法不止这些,感兴趣的话,大家可以自行探索哦

以上就是本篇博客全部内容!


【SpringBoot】从学会使用maven开始》 是转载文章,点击查看原文


相关推荐


RAG索引流程详解:如何高效解析文档构建知识库
北辰alk2026/1/9

引言:为什么文档解析是RAG的基石? 在RAG(检索增强生成)系统中,文档解析是整个知识库构建的第一步,也是最关键的一步。就像建房子需要打好地基一样,良好的文档解析质量直接决定了后续检索和生成的效果。今天,我们就深入探讨RAG索引流程中的文档解析技术。 一、RAG文档解析的整体架构 首先,让我们通过一个流程图了解完整的解析流程: ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐ │                 


Pico裸机2(汇编基础)
fanged2026/1/1

既然都裸机了,还是简单回顾一下汇编吧。。。 1 概念 来自:https://redfoxsec.com/blog/introduction-to-assembly-language/ 汇编基本上就是机器码。汇编语言是一种直接对应处理器指令集的低级语言,它以人类可读的形式表达机器指令,是软件与硬件之间几乎最底层的一层接口;每一条汇编指令几乎都能映射为一条机器指令,能够精确控制寄存器、内存、指令顺序和硬件状态,因此被广泛用于启动代码、中断处理、上下文切换和性能或时序极端敏感的场景。


Flutter 开发实战:解决华为 HarmonyOS 任务列表不显示 App 名称的终极指南
雨夜寻晴天2025/12/22

问题背景 在 Flutter 应用开发中,我们最近遇到了一个棘手的兼容性问题:在部分 华为手机(HarmonyOS 4.2.0,如 Mate 30 Pro 5G) 上,应用运行时的最近任务列表(Overview Screen)中,只显示应用图标,却不显示应用名称(App Name)。 虽然我们在 AndroidManifest.xml 中正确配置了 android:label,但在 HarmonyOS 系统上依然无效。这不仅影响用户体验,也可能导致应用在审核时被拒(如华为应用市场审核指南第 2.


【鸿蒙开发案例篇】定点出击!鸿蒙6.0视频碰一碰流转+实时进度同步案例
威哥爱编程2025/12/14

兄弟们抄家伙!今天V哥要用鸿蒙6.0的分布式能力撕碎视频跨设备流转的防线!目标:手机碰一下车机/平板,视频秒级切换+进度毫秒级同步,全程零手动干预!以下基于HarmonyOS 6.0(API 21)的ArkTS实战核弹代码已就位👇 联系V哥获取 鸿蒙学习资料 🔥 一、技术架构:分布式视频作战链 核心武器库: 碰一碰触发:NFC+分布式设备管理(@ohos.distributedDeviceManager) 进度同步引擎:AVSession Kit(@kit.AVSessionKit) 数


程序员从大厂回重庆工作一年
uzong2025/12/6

从大厂裸辞回重庆工作,整整一年了。 时间快得让人心惊。停下回望,从裸辞、归乡、求职到适应,再到角色转换,种种心绪,感慨颇多。 一、离开时,那句话成了种子 最后一个工作日的下午,领导把我叫到楼道,做了一次临别交谈。 他有一句话,我至今记得清清楚楚:“以后出去,一定要想办法走向管理岗位,那是完全不同的竞争力。” 当时只是记下。一年后的今天,当我开始带领一个小团队时,这句话突然在心里发了芽。 它像一颗提前埋下的种子,在合适的时节悄然生长。 二、裸辞回渝:一场恰如其分的“任性” 回重庆是裸辞的。所有


Python微服务架构在分布式电商系统中的高性能设计与实战经验总结分享
2501_941810832025/11/28

在大型电商系统中,用户请求量巨大、数据访问密集、服务链路复杂,要求系统具备高响应速度、高并发吞吐能力与稳定扩展性。Python 凭借开发效率高、生态完善与易维护特性,越来越多被用于电商系统的接口层、交易逻辑层、库存管理、推荐系统以及风控服务。本文结合实战电商系统落地经验,分享 Python 在分布式微服务架构中的模块划分、性能调优、服务治理与高并发优化,为开发者提供可落地的架构经验参考。 一、Python 架构选型思路 在传统单体架构中,全站服务聚合在同一进程中,随着并发量增长,性能和可维


OoderAgent V0.6.5 Nexus 重磅发布:开启超级智能体开发框架新纪元
OneCodeCN2026/1/26

前言: v0.6.5 使用了一个特别的代号,Nexus(枢纽)她不再是一次简单的技术升级。而是一次重生。cong 从0.6.2到0.6.5我们在AI的驱动先快速的迭代,从从基础架构到核心升级,再到技能统一提升,直到0.6.5 一次质的跃迁。本次版本以“构建个人超级终端、赋能全场景智能开发”为核心,重构技术架构、强化能力体系、拓展生态边界,为开发者提供一套从设备协同到AI能力编排的全链路智能体开发解决方案,标志着SuperAgent向“去中心化超级智能体底座”迈出关键一步。 一、Nexu


Rust多线程编程学习笔记
sayang_shao2026/2/4

目录 Rust 多线程基础同步线程编程 基本线程创建线程间通信共享状态线程返回值线程池 异步线程编程 Tokio 异步运行时异步任务异步通道异步共享状态 线程安全 所有权与借用同步原语Send 和 Sync trait 性能优化 线程数量避免竞争异步 vs 同步 最佳实践完整代码示例总结 Rust 多线程基础 Rust 的多线程编程建立在标准库的 std::thread 模块之上。与其他语言不同,Rust 通过其所有权系统和类型系统来保证线程安全,避免了常见的并发问


2025 年客户端技术盘点与 2026 年技术展望
陆业聪2026/2/13

摘要:2025 年客户端技术围绕三条主线展开:Apple Liquid Glass 与 Android Material 3 Expressive 引领设计革新,端侧 AI 通过 Apple Foundation Models 框架和 Google Gemini 走向开发者可编程化,Flutter、React Native、KMP 等跨平台框架在性能上全面向原生看齐。2026 年的核心看点在于端侧 AI 生态建设、新设计语言落地及鸿蒙全球化验证。 本文基于 2025 年各平台官方发布的公开信


【大模型面试突击】03_大模型架构演进与对比
香芋Yu2026/2/21

2026大模型面试:大模型架构演进与对比必考28题(含答案) 精选自176道采集题目,保留最高频最核心的28题 | 难度:⭐基础 ⭐⭐进阶 ⭐⭐⭐深入 一、GPT与LLaMA系列演进(7题) 1. ⭐⭐ [字节/高频] GPT系列从GPT-1到GPT-4的架构演进主要脉络是什么? 一句话秒答: 四代GPT走的是一条"预训练范式→暴力出奇迹→多模态融合"的进化路线,每一步都在重新定义规模的上限。 展开来说: GPT-1其实干了一件很简单但当时很大胆的事——把Transformer Decod

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客