轻松入门:Maven核心功能详解

news2024/11/23 8:12:13
White graces:个人主页

🙉专栏推荐:Java入门知识🙉


⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏

⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏


目录

Maven

Maven核心功能

1. 项目构建

2. 依赖管理

依赖冲突

依赖排除

Maven仓库

本地仓库和远程仓库


Maven

Maven主要用于Java项目的管理和构建

创建Maven项目

Maven核心功能

1. 项目构建

maven有许多命令可以帮助我们构建项目

例如package命令

package命令可以将项目打成jar包

打包: 将所有class文件集中到一起, 打成jar包或war包

jar作用: 其他开发者可以引入jar包之后, 可以使用里面的类和属性, 方便开发

2. 依赖管理

没有Maven的情况下, 导jar包是需要我们是手动导入的,现在有了Maven就不需要手动导jar包 

Maven是一个项目管理工具, 通过pom.xml文件的配置获取jar包, 不需要我们手动导包, 这个操作就是依赖

下面演示Maven导包, 我们只需要再pom.xml文件引入依赖即可

依赖传递

向项目中引入依赖的jar包时, 也会把jar包之下的依赖引入进去

比如B jar包依赖C jar包, 当我们向A项目引入B jar包时, 也会把B jar包之下的C jar包引入到A项目中, 这种机制被称为依赖传递

依赖冲突

依赖冲突是指在Maven项目中, 不同的依赖引入了相同的库版本不同, 导致Maven无法确定使用哪个版本. 这种情况通常会引发编译错误或运行时异常.

例如, 假设你的项目依赖于库A和库B, 而库A依赖于库C的1.0版本, 库B依赖于库C的2.0版本.Maven在构建项目时会遇到冲突, 因为它不知道应该使用库C的哪个版本.

依赖排除

用于解决依赖冲突, 排除冲突的依赖

例如, 如果你的项目依赖于库A, 而库A又依赖于库B, 但你不希望库B被引入到你的项目中, 你可以在POM.XML文件中排除库B.

怎样排除不想要的依赖呢?

可以借助Maven Help插件

安装步骤: 

安装插件:File->Settings->Plugins->搜索'MavenHelp'-> 找到对应插件,点击Install安装即可,安装 后需要重启下idea,才能生效

如果忘记排除依赖冲突怎么办?

此时编译器会按照最短路径选择依赖, 另一个会被舍弃

Maven仓库

仓库可以抽象成现实中的快递站, Maven相当于云快递站,

下载Jar包就像是取快递, 取快递会有取件码, 通过取件码就能找到唯一的包裹

Maven的取件码就是groupId、artifactId、version这三个属性标识的, 通过它们就能找到Jar包并下载下来.

本地仓库和远程仓库

仓库分为两种本地仓库和远程仓库

当Maven构建项目时,它会按照以下顺序查找依赖:

  1. 本地仓库:首先检查本地仓库是否存在所需依赖
  2. 远程仓库:如果本地仓库没有找到,Maven会从远程仓库下载依赖并缓存到本地仓库

本地仓库是存储在开发者计算机上的一个目录, 本地仓库中的依赖可以立即被项目使用,无需每次都从远程仓库下载, 没网也能用

远程仓库一般是由Maven社区维护, 本地仓库没有的依赖就会区中央仓库下载

本地仓库的地址

由于Maven中央仓库服务器在国外, 我们下载Jar包速度会很what can i say, 因此我们可以设置更改国内站点进行下载

settings.xml文件链接: 

美图分享

✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超材料光子晶体和禁带分析实例_CST电磁仿真教程

光子晶体是由周期性排列的不同折射率的介质制造的光学结构,可被视为广义超材料metamaterial的一种。本期我们演示设计一个基于光频能带(PBG,photonics band gap) 的二维光子晶体波导,能带分析方法也可适用于微波波段(EBG,electromagetic band…

QT事件与网络通信

闹钟 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTimer> #include <QTextToSpeech> // 添加此行以引入QTextToSpeech类QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWin…

通信接入技术

一、xDSL 1、xDSL&#xff1a;利用电话线中的高频信息传输数据&#xff0c;高频信号损耗大&#xff0c;容易受噪声干扰。【速率越高&#xff0c;传输距离越近】 1.1 ADSL虚拟拨号&#xff1a;采用专门的协议PPPover Ethernet&#xff0c;拨号后直接由验证服务器进行检验&#…

免费版视频压缩软件:让视频处理更便捷

现在不少人已经习惯通过视频来记录生活、传播信息和进行娱乐的重要方式。但是由于设备大家现在录制的文件都会比较大&#xff0c;这时候就比较需要一些缩小视频的工具了。今天我们一起来探讨视频压缩软件免费版来为我们带来的生动世界。 1.Foxit视频压缩大师 链接直达&#x…

【论文笔记】Adversarial Diffusion Distillation

Abstract 本文提出了一种新的训练方法&#xff0c;在保持较高图像质量的前提下&#xff0c;仅用1~4步就能有效地对大规模传统图像扩散模型进行采样&#xff0c;使用分数蒸馏(score distillation)&#xff0c;来利用大规模现成的图像扩散模型作为教师信号&#xff0c;并结合对抗…

CVE-2022-26965靶机渗透

​ 开启环境 ​ ​ 进入环境 ​ ​ 使用弱口令admin登录 ​ ​ 利用cms主题构造木马 ​ 需要将主题中的info.php文件修改&#xff0c;再打包成zip再上传&#xff0c;通过网络搜索找到Github中的Pluck CMS&#xff0c;进入后随便下载任一主题 https://github.com/sear…

解锁编程的力量:SPL的学习之旅

SPL 一、前言二、集算器应用场景三、下载四、集算器的基本使用 一、前言 一种面向结构化数据的程序计算语言 集算器又称&#xff1a;SPL&#xff08;Structured Process Language&#xff09; 敏捷计算是集算器的主要特征 二、集算器应用场景 数据准备&#xff08;跑批&…

闭着眼学机器学习——决策树分类

引言&#xff1a; 在正文开始之前&#xff0c;首先给大家介绍一个不错的人工智能学习教程&#xff1a;https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程&#xff0c;感兴趣的读者可以自行查阅。 1. 算法介绍 决策树是一种常用的机器学习算法…

Linux SSH无密码使用私钥远程登录连接详细配置流程

文章目录 前言1. Linux 生成SSH秘钥对2. 修改SSH服务配置文件3. 客户端秘钥文件设置4. 本地SSH私钥连接测试5. Linux安装Cpolar工具6. 配置SSHTCP公网地址7. 远程SSH私钥连接测试8. 固定SSH公网地址9. 固定SSH地址测试 前言 本文将详细介绍如何将Linux SSH服务与cpolar相结合&…

modbus tcp wireshark抓包

Modbus TCP报文详解与wireshark抓包分析_mbap-CSDN博客 关于wireshark无法分析出modbusTCP报文的事情_wireshark 协议一列怎么没有modbus tcp-CSDN博客 使用Wireshark过滤Modbus功能码 - 技象科技 连接建立以后才能显示Modbus TCP报文 modbus.func_code 未建立连接时&…

论文阅读MOE-DAMEX

目录 Abstract 1. Introduction 3. 传统的MOE 4. 方法 题目&#xff1a;DAMEX: Dataset-aware Mixture-of-Experts for visual understanding of mixture-of-datasets数据集感知的专家混合模型&#xff0c;用于混合数据集的视觉理解 Abstract 通用普通的detector的构建提…

使用HTML、CSS和JavaScript创建图像缩放功能

使用HTML、CSS和JavaScript创建图像缩放功能 在这篇博客文章中&#xff0c;我们将介绍如何使用HTML、CSS和JavaScript创建一个简单的图像缩放功能。这个功能可以增强用户体验&#xff0c;让访问者在点击图像时查看更大的版本。 效果 步骤1&#xff1a;设置HTML结构 首先&…

python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS)

python异常检测 - Stochastic Outlier Selection (SOS) 前言 随机离群选择SOS算法全称stochastic outlier selection algorithm. 该算法的作者是jeroen janssens. SOS算法是一种无监督的异常检测算法. 随机离群选择SOS算法原理 随机离群选择SOS算法的输入: 特征矩阵(featu…

架构设计笔记-14-云原生架构设计理论与实践

知识要点 云原生&#xff08;Cloud Native&#xff09;架构原则&#xff1a; 服务化原则&#xff1a;通过微服务架构&#xff0c;小服务&#xff08;MiniService&#xff09;架构把不同生命周期的模块分离出来&#xff0c;分别进行业务迭代&#xff0c;避免迭代频繁模块被慢速…

10 分钟使用豆包 MarsCode 帮我搭建一套后台管理系统

以下是「 豆包MarsCode 体验官」优秀文章&#xff0c;作者把梦想揉碎。 十分钟使用豆包 MarsCode 搭建后台管理项目 在这个快节奏的时代&#xff0c;开发者们总是希望能够快速、高效地完成项目的搭建与开发工作。无论是初创企业还是大型公司&#xff0c;后台管理系统都是必不可…

Java数组总结

这里写目录标题 一、概念二、几个相关的概念三、数组的特点四、复习:变量按照数据类型的分类五、数组的分类六、一维数组的使用(6个基本点)七、数组元素的默认初始值的情况八、一维数组的内存解析九、二维数组十、数组的常用算法1、数组的最大值、最小值、总和、平均值2、数组的…

翻译难题一扫光!2024年精选4款神器,推荐给每一个需要的你

咱们现在生活在一个信息多得跟潮水一样扑过来的时代&#xff0c;翻译可不只是简单地把一种语言换成另一种语言那么简单了。它更像是连接不同文化和国家的坚固桥梁&#xff0c;也是让知识快速传播的超级加速器。随着科技的飞速发展&#xff0c;翻译工具也迎来了翻天覆地的变化。…

python画图|三维动态柱状图绘制

【1】引言 前序已经学习了二维动态柱状图绘制教程&#xff0c;本次尝试探索三维动态柱状图绘制教程&#xff1a; 【2】项目设计 三维和二维的不同&#xff0c;要在一开始就定义。 二维的定义简单粗暴&#xff0c;只需要一行代码&#xff1a; fig, ax plt.subplots() # 定…

【动手学深度学习】6.6. 卷积神经网络(LeNet)(个人向笔记)

之前我们对Fashion-MNIST数据集的每一张图片进行展平&#xff0c;并用全连接层进行处理。现在我们可以用卷积神经网络来代替它了&#xff01;用卷积层处理可以在图像中保留空间结构&#xff0c;同时模型更简洁&#xff0c;所需参数更少本节将介绍LeNet&#xff0c;它是最早发布…

python学习-怎么在Pycharm写代码

打开Pycharm&#xff0c;点击文件-新建项目 2.选择pure python-点击箭头 展开 3.选择 Existing interpreter 如果 Existing interpreter 下没有相关环境 &#xff08;1&#xff09;点击**…** &#xff08;2&#xff09;选择python的安装路径 4.可修改文件名称-点击创建 …