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

Maven入门核心知识点总结

Maven

  • 1. POM(Project Object Model)
  • 2. 坐标(Coordinates)
  • 3. 依赖管理(Dependency Management)
  • 4. 常用五个生命周期(Life Circle)
  • 5. Maven 仓库(Maven Repository)
    • 5.1 本地仓库
    • 5.2 远程仓库
    • 5.3 仓库的查找顺序
  • 6. Maven常见问题

Maven 是一个基于项目对象模型(POM)的项目管理工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。以下是 Maven 的核心知识点总结:

1. POM(Project Object Model)

pom.xml 是 Maven 的核心配置文件,定义了项目的基本信息、依赖、插件、构建配置等。在导入 Maven 项目时,建议选择其 pom.xml 文件进行导入。

2. 坐标(Coordinates)

通过 groupIdartifactIdversion 唯一标识一个项目或依赖。

  • groupId:组织名称(通常为域名反写)
  • artifactId:模块名称
  • version:版本号:
    • SNAPSHOT:功能不稳定、尚处于开发中的版本
    • RELEASE:功能趋于稳定、当前停止更新,可用于发行的版本,可省略不写

如果不知道依赖的坐标信息:可以到 https://mvnrepository.com

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>6.1.14</version>
</dependency>

3. 依赖管理(Dependency Management)

Maven 自动下载和管理项目所需的依赖,并解决依赖冲突。

  • 依赖传递:Maven 自动处理依赖的传递性。
  • 依赖排除:通过 <exclusions> 排除不需要的传递依赖。

假设项目 A 依赖项目 B,但不需要项目 B 传递的项目 C,可以在 pom.xml 中配置排除:

<dependencies><dependency><groupId>com.example</groupId><artifactId>project-B</artifactId><version>1.0.0</version><exclusions><exclusion><groupId>com.example</groupId><artifactId>project-C</artifactId></exclusion></exclusions></dependency>
</dependencies>
  • exclusion:指定要排除的依赖的 groupId 和 artifactId。
  • 作用:排除后,项目 A 不会引入项目 C 的依赖。

4. 常用五个生命周期(Life Circle)

在同一套生命周期中,当前运行后面的阶段时,前面的阶段都会运行

  • clean:清理项目,删除 target 目录。
  • compile:编译项目源代码。
  • test:运行单元测试。
  • package:打包项目,生成 JAR/WAR 文件。
  • install:将项目安装到本地仓库。

在这里插入图片描述

5. Maven 仓库(Maven Repository)

Maven 仓库是存储项目依赖(如 JAR 文件)和插件的地方,分为本地仓库、远程仓库(包括私服)和中央仓库。以下是它们的详细介绍:

5.1 本地仓库

存储本地依赖和构件,默认位于 ~/.m2/repository
可以通过 settings.xml 文件修改本地仓库路径:

<settings><localRepository>/path/to/custom/repo</localRepository>
</settings>

5.2 远程仓库

  • 中央仓库:Maven 默认的公共仓库,存储大量开源依赖。https://repo.maven.apache.org/maven2
  • 私服:企业内部搭建的私有仓库,用于存储私有构件和缓存公共依赖。

5.3 仓库的查找顺序

  1. 本地仓库:首先检查本地仓库是否有所需的依赖。
  2. 远程仓库
    • 如果配置了私服,Maven 会优先从私服查找。
    • 如果私服中没有,Maven 会从中央仓库查找。
  3. 下载并缓存:如果依赖在远程仓库中找到,Maven 会将其下载并缓存到本地仓库。

6. Maven常见问题

  1. IntelliJ IDEA右侧没有Maven工具栏
  2. ‘mvn‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件——解决方法(详解,亲测有效)
  3. idea中普通项目变成maven项目?复制后生成的项目不是maven项目?右击项目无法运行?
  4. Maven下载jar包出现.lastUpdated结尾的文件问题及解决
  5. Maven引入本地jar包
http://www.lryc.cn/news/534343.html

相关文章:

  • 【力扣】138.随机链表的复制
  • 编程语言的深度剖析:从语法到性能优化
  • 台湾精锐APEX减速机在半导体制造设备中的应用案例
  • Rocketmq 和 Rabbitmq ,在多消费者的情况下,可以实现顺序消费吗
  • Springboot原理(面试高频)
  • 2024 Rust现代实用教程:1.1Rust简介与安装更新
  • yolov11模型在Android设备上运行【踩坑记录】
  • 提示工程:少样本提示(Few-shot Prompting)
  • 方舟字节码原理剖析:架构、特性与实践应用
  • 深入Linux系列之环境变量
  • 国产编辑器EverEdit - Web预览功能
  • C#中的Frm_Welcome.Instance.Show(),是什么意思
  • 07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)
  • C++开发(软件开发)常见面试题
  • 人工智能-A*算法与卷积神经网络(CNN)结合实现路径规划
  • 蓝桥杯备赛——进制转化相关问题
  • DevOps的个人学习
  • 使用Pytorch训练一个图像分类器
  • 《ARM64体系结构编程与实践》学习笔记(四)
  • 01-SDRAM控制器的设计——案例总概述
  • 京准:NTP卫星时钟服务器对于DeepSeek安全的重要性
  • uniapp访问django目录中的图片和视频,2025[最新]中间件访问方式
  • RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决
  • python脚本实现windows电脑内存监控内存清理(类似rammap清空工作集功能)
  • 【狂热算法篇】并查集:探秘图论中的 “连通神器”,解锁动态连通性的神秘力量
  • SpringBoot中实现动态数据源切换
  • 数据结构及排序算法
  • Python基础-元组tuple的学习
  • 【手写公式识别】MEMix: Improving HMER with Diverse Formula Structure Augmentation 论文阅读
  • 使用deepseek写一个飞机大战游戏