当前位置: 首页 > 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包

相关文章:

Maven入门核心知识点总结

Maven 1. POM&#xff08;Project Object Model&#xff09;2. 坐标&#xff08;Coordinates&#xff09;3. 依赖管理&#xff08;Dependency Management&#xff09;4. 常用五个生命周期&#xff08;Life Circle&#xff09;5. Maven 仓库&#xff08;Maven Repository&#x…...

【力扣】138.随机链表的复制

AC截图 题目 代码 使用哈希存储<旧节点&#xff0c;新结点> /* // Definition for a Node. class Node { public:int val;Node* next;Node* random;Node(int _val) {val _val;next NULL;random NULL;} }; */class Solution { public:Node* copyRandomList(Node* hea…...

编程语言的深度剖析:从语法到性能优化

引言 随着软件开发的不断进化&#xff0c;编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择&#xff1a;每一种语言都有独特的优势、特性和适用场景。然而&#xff0c;语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本…...

台湾精锐APEX减速机在半导体制造设备中的应用案例

半导体制造设备对传动系统的精度、可靠性和稳定性要求极高&#xff0c;台湾精锐APEX减速机凭借其低背隙、高精度和高刚性等优势&#xff0c;在半导体制造设备中得到了广泛应用。 案例一&#xff1a;晶圆切割设备 1.应用场景 在晶圆切割过程中&#xff0c;设备需要高精度的运…...

Rocketmq 和 Rabbitmq ,在多消费者的情况下,可以实现顺序消费吗

在多消费者的情况下&#xff0c;RocketMQ 和 RabbitMQ 都可以实现顺序消费&#xff0c;但它们的实现机制和适用场景有所不同。以下是对两者的详细分析和对比&#xff1a; 1. RocketMQ 的顺序消费 1.1 实现机制 顺序消息&#xff1a;RocketMQ 支持顺序消息&#xff08;Orderly …...

Springboot原理(面试高频)

目录 一、 配置优先级 ​编辑 二、Bean管理 ​​​​​​​2.1&#xff1a;获取Bean ​编辑 ​​​​​​​2.2&#xff1a;Bean作用域 ​​​​​​​​​​​​​​2.3&#xff1a;第三方Bean 三、Springboot底层原理 3.1&#xff1a;起步依赖 3.1.1&#xff1a;ma…...

2024 Rust现代实用教程:1.1Rust简介与安装更新

文章目录 一、Rust安装二、更新Rust三、Rust的Stable与Nightly版本四、卸载ubuntu安装的cargo和rustup五、rust源设置六、rust交叉编译工具链说明 rustup稳定版交叉编译步骤 步骤 1&#xff1a;安装目标组件步骤 2&#xff1a;安装交叉编译工具链步骤 3&#xff1a;配置环境变…...

yolov11模型在Android设备上运行【踩坑记录】

0) 参考资料: https://github.com/Tencent/ncnn?tabreadme-ov-file https://github.com/pnnx/pnnx https://github.com/nihui/ncnn-android-yolov5 https://github.com/Tencent/ncnn?tabreadme-ov-file 1) &#xff1a;将xxx.pt模型转化成 xxx.onnx ONNX&#xff08;Ope…...

提示工程:少样本提示(Few-shot Prompting)

少样本提示&#xff08;Few-shot Prompting&#xff09;是一种利用大语言模型从少量示例样本中学习并处理任务的方法。它的核心思想是利用大语言模型的上下文学习能力&#xff0c;通过在提示中增加“示例样本”来启发大语言模型达到举一反三的效果。这种方法避免了重新训练或者…...

方舟字节码原理剖析:架构、特性与实践应用

方舟字节码原理剖析&#xff1a;架构、特性与实践应用 一、引言 在当今软件行业高速发展的大背景下&#xff0c;应用程序的性能、开发效率以及跨平台兼容性成为了开发者们关注的核心要素。编译器作为软件开发流程中的关键工具&#xff0c;其性能和特性直接影响着软件的质量和…...

深入Linux系列之环境变量

深入Linux系列之环境变量 那么在之前的内容中&#xff0c;我们已经介绍了我们Linux进程的一些关键属性&#xff0c;例如进程编号以及进程状态和进程优先级&#xff0c;那么本篇文章接介绍Linux的环境变量这一知识点&#xff0c;那么废话不多说&#xff0c;我们进入环境变量的讲…...

国产编辑器EverEdit - Web预览功能

1 Web预览 1.1 应用场景 在编辑HTML文件时&#xff0c;可以通过EverEdit的Web预览功能&#xff0c;方便用户随时观察和调整HTML代码。 1.2 使用方法 1.2.1 使用EverEdit内部浏览器预览 选择主菜单查看 -> Web预览&#xff0c;或使用快捷键Ctrl B&#xff0c;即可打开Ev…...

C#中的Frm_Welcome.Instance.Show(),是什么意思

Frm_Welcome.Instance.Show() 是一种常见的单例模式&#xff08;Singleton Pattern&#xff09;实现方式&#xff0c;通常用于在应用程序中确保某个窗体&#xff08;Form&#xff09;只有一个实例&#xff0c;并通过该实例显示窗体。以下是对这段代码的详细解释&#xff1a; 代…...

07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)

课程内容 缓存菜品 缓存套餐 添加购物车 查看购物车 清空购物车 功能实现&#xff1a;缓存商品、购物车 效果图&#xff1a; 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压…...

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构&#xff1f; 4、有了mac地址为什么还要ip地址&#xff1f;ip地址的作用 5、有了路由器为什么还要交换机&#xff1f; 6、面向对象三大特性 7、友元函数 8、大端小端 …...

人工智能-A*算法与卷积神经网络(CNN)结合实现路径规划

以下是一个将 A* 算法与卷积神经网络(CNN)结合实现路径规划的代码示例。主要思路是使用 A* 算法生成训练数据,然后用这些数据训练一个 CNN 模型,让 CNN 学习如何预测路径,最后使用训练好的 CNN 模型进行路径规划。 代码实现 import numpy as np import heapq import tor…...

蓝桥杯备赛——进制转化相关问题

目录 一、基础概念 二、问题研究&#xff08;1&#xff09; 代码解读&#xff1a; 1. transfer 函数 代码功能概述 详细步骤 2. main 函数 代码功能概述 详细步骤 三、运用递归解决 &#xff08;一&#xff09; 代码如下&#xff1a; 代码解读&#xff1a; &#…...

DevOps的个人学习

一、DevOps介绍 软件开发最初是由两个团队组成&#xff1a; 开发团队&#xff1a;负责设计和构建系统。运维团队&#xff1a;负责测试代码后部署上线&#xff0c;确保系统稳定安全运行。 这两个看似目标不同的团队需要协同完成一个软件的开发。DevOps整合了开发与运维团队&a…...

使用Pytorch训练一个图像分类器

一、准备数据集 一般来说&#xff0c;当你不得不与图像、文本或者视频资料打交道时&#xff0c;会选择使用python的标准库将原始数据加载转化成numpy数组&#xff0c;甚至可以继续转换成torch.*Tensor。 对图片而言&#xff0c;可以使用Pillow库和OpenCV库对视频而言&#xf…...

《ARM64体系结构编程与实践》学习笔记(四)

MMU内存管理 1.MMU内存管理&#xff08;armv8.6手册的D5章节&#xff09;&#xff0c;MMU包含快表TLB&#xff0c;TLB是对页表的部分缓存&#xff0c;页表是存放在内存里面的。 AArch64仅仅支持Long Descriptor的页表格式&#xff0c;AArch32支持两种页表格式Armv7-A Short De…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...