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

Maven学习(传统Jar包管理、Maven依赖管理(导入坐标)、快速下载指定jar包)

目录

一、传统Jar包管理。

(1)基本介绍。

(2)传统的Jar包导入方法。

1、手动寻找Jar包。并放置到指定目录下。

2、使用IDEA的库管理功能。

3、配置环境变量。

(3)传统的Jar包管理缺点。

二、Maven。

(1)什么是Maven。

(2)Maven的特点与作用。

(3)下载安装Maven与配置Maven。

(4)Maven依赖管理。

三、快速手动下载指定jar包。

(1)Maven的中央仓库。

(2)进入Maven中央仓库网页。

(3)选择需要下载的Jar包。

(4)选择对应合适的Jar包版本。

(5)选择下载Jar包或导入坐标。(在pom.xml文件)


一、传统Jar包管理。

(1)基本介绍。
  • 传统的Jar包导入通常是:在没有使用(如Maven)这样的依赖管理工具之前,Java开发者如何管理和导入外部库

(2)传统的Jar包导入方法。
1、手动寻找Jar包。并放置到指定目录下。
  • 开发者需要手动从互联网上找到所需的Jar文件下载后将其放入项目的lib目录下
  • 在(如:Eclipse、IntelliJ IDEA等)中,需要手动将这些Jar文件添加到项目的构建路径中,以便编译器能够识别和使用这些库。

2、使用IDEA的库管理功能。

  • IDEA提供了库管理功能,允许开发者通过图形界面添加Jar文件。
  • 开发者可以通过IDE的“添加库”或“添加Jar包”功能,选择本地的Jar文件并将其添加到项目中。

3、配置环境变量。

  • 在某些情况下,开发者会通过设置环境变量(如:CLASSPATH)来指定Jar文件的位置,这样JVM在运行时能够找到这些库。
  • 等等还有其它方法(如:单独管理系统级的Jar包、赋值粘贴类文件、管理WAR文件)

(3)传统的Jar包管理缺点。
  • 开发者需要手动下载Jar包并将其复制到项目的lib目录下,这不仅耗时而且容易出错
  • 没有自动化的工具来处理依赖的解析和版本管理,导致依赖冲突和版本不一致的问题。
  • 由于每个项目都有自己的依赖副本,项目的移植和维护困难
  • 对于多个项目,相同的Jar包需要在每个项目中重复添加,大量的重复劳动。
  • 没有中央仓库来统一管理依赖。使得依赖的查找、下载和更新变得繁琐。
  • 没有统一的项目结构和构建流程。使得新开发者难以快速理解和上手项目。
  • 相比现代的Maven工具,传统方式在构建速度上存在劣势,尤其是在大型项目中。

  • 这些缺点导致了开发效率的降低项目维护难度的增加。这也是为什么像Maven和Gradle这样的现代依赖管理工具被广泛采用的原因。

二、Maven。

(1)什么是Maven。
  • Maven是一个软件项目管理和构建自动化工具,主要用于管理Java项目
  • Maven的主要作用是在项目开发阶段:对项目进行依赖管理、项目构建以及管理插件。

(2)Maven的特点与作用。
  • Maven使用XML文件(POM)来描述项目信息和配置。(包括项目依赖、插件、构建配置等)

  • Maven 提供了强大的依赖管理功能。能够自动下载项目所需的库文件,并解决依赖之间的版本冲突

  • Maven推崇"约定优于配置",推荐标准的目录结构和生命周期,使得项目结构更加统一。

  • Maven拥有丰富的插件系统。这些插件可以执行特定的任务(称为目标),如编译代码、运行测试、生成文档等。

  • Maven可以在多种操作系统上运行。(包括 Windows、Linux 和 macOS)

  • Maven有中央仓库。其中包含了大量常用的库,开发人员可以通过简单的配置来管理项目的依赖关系。

(3)下载安装Maven与配置Maven。
  • 这里的操作方法博主已经在另外的一篇博客进行总结了!(详细的很)
  • 博客链接如下。

Maven下载安装、环境配置(超详细)(包括Java环境配置(Windows)、在IDEA中配置Maven)_maven下载安装配置-CSDN博客文章浏览阅读1.3w次,点赞76次,收藏283次。这篇博客主要是记录了如何下载安装Maven ,并且如何在本机Windows配置环境变量。其次写到了如何在IDEA中配置Maven,最后在博客中还讲到了如何配置Java的环境变量......_maven下载安装配置https://blog.csdn.net/m0_74363339/article/details/139768830

(4)Maven依赖管理。
  • 就是对Jar包的管理,以往我们需要下载好xxxx.jar的jar包,粘贴到工程的lib目录下面去。
  • 如今使用Maven的依赖管理功能,想要引入某个Jar包只需要在对应的Maven项目的pom.xml文件中导入Maven的坐标即可。(它会通过坐标找到对应的Jar包并下载到本地的maven仓库!!

三、快速手动下载指定jar包。

(1)Maven的中央仓库。
  • Maven的中央仓库是Maven构建系统的核心组件之一,它提供了大量的开源库和依赖项,极大地简化了项目的依赖管理和构建过程。

  • 由于国内网络环境的原因,直接访问官方Maven中央仓库可能会遇到速度慢或不稳定的问题。因此,推荐国内用户使用国内的Maven中央仓库镜像,如阿里云华为云等提供的镜像。这些镜像不仅访问速度快,而且稳定性高,能够显著提升项目的构建效率。
Maven的中央仓库地址icon-default.png?t=O83Ahttps://mvnrepository.com/
(2)进入Maven中央仓库网页。
  • 左侧导航栏可以看到热搜的资源。
  • 也可以直接通过上方的主搜索栏,直接根据Jar包名进行搜索。


(3)选择需要下载的Jar包。
  • 也可以直接搜索Jar包名字即可。


(4)选择对应合适的Jar包版本。
  • 选择稳定的、且无漏洞的版本。
  • 选择使用次数较多的版本。(经过了市场检验的,使用人多说明稳定性好)


(5)选择下载Jar包或导入坐标。(在pom.xml文件)
  • 直接点击下面的"jar"按钮,弹出下载提示,直接下载。
  • 或者复制下面对应坐标并前往对应的Maven项目的pom.xml文件粘贴。

相关文章:

Maven学习(传统Jar包管理、Maven依赖管理(导入坐标)、快速下载指定jar包)

目录 一、传统Jar包管理。 (1)基本介绍。 (2)传统的Jar包导入方法。 1、手动寻找Jar包。并放置到指定目录下。 2、使用IDEA的库管理功能。 3、配置环境变量。 (3)传统的Jar包管理缺点。 二、Maven。 &#…...

CTF: 在本地虚拟机内部署CTF题目docker

step 1 安装基本依赖 sudo apt-get update sudo apt-get install -y \ca-certificates \curl \gnupg \lsb-releasestep 2 安装docker sudo apt-get remove docker docker.io containerd runc sudo apt-get update sudo apt-get install \apt-transport-https \ca-certificate…...

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式,往往会对环境造成严重污染。因此,减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立,各地努力减少因焚烧引发的森林火灾,保护生态环境。 巡察烟火…...

SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!

一、前言🔥 环境说明:Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情况下我们在开发系统的时候都是使用一个数据源,但是由于有些项目同步数据的时候不想造成数据库io消耗压力过大,便会一个项目对应多个数据源…...

【嵌入式linux基础】关于linux文件多次的open

在 Linux 中,设备文件可以被多次打开(open()),但这取决于具体的设备类型和其驱动程序的实现。以下是关于设备文件多次打开的一些关键点: 普通字符设备: 对于大多数字符设备,如串口、TTY 设备等&…...

TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey

摘要 目标检测(Object Detection,OD)是计算机视觉中的一项关键任务,多年来涌现出了众多算法和模型。尽管当前 OD 模型的性能有所提升,但它们也变得更加复杂,由于参数规模庞大,在工业应用中并不…...

2024前端面试题(持续更新)

目录 一、js的数据类型有哪些? 二、什么是symbol? 三、什么是浅拷贝什么是深拷贝? 四、vue2的生命周期? 五、vue2中父子组件的生命周期调用顺序 六、vue3的生命周期 七、vue3对比vue2的变化 八、组合式API中的ref和reactiv…...

apache转nginx访问变成下载解决方法

在配置文件 nginx.conf中存在 第一行: include mine.types 对应了文件的mime类型。 第二行: 默认的是octet-stream, 意思是如果一个文件的mime类型不存在就会使用默认的类型。 通常是这个导致了文件的下载。 第一种方案:(推荐&a…...

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(三)

目录 ARC规则 概要 所有权修饰符 __strong修饰符 __weak修饰符 __unsafe_unretained修饰符 __autoreleasing修饰符 ARC规则 概要 “引用计数式内存管理”的本质部分在ARC中并没有改变,ARC只是自动地帮助我们处理“引用计数”的相关部分。 在编译单位上可以…...

Oracle数据库使用dblink是时出现 ORA-12170:TNS:连接超时

原因: 我遇到这种情况是因为dblink那端的数据库被我重新导了一下dmp,然后本地这边查询就报错了。 解决办法: 把已有的dblink删掉或者说是换个名字,然后按照原来的再新建一个同名的dblink就解决了。...

OpenHarmony系统中实现Android虚拟化、模拟器相关的功能,包括桌面显示,详细解决方案

在 OpenHarmony 系统中实现 Android 虚拟化 和 模拟器功能(面显包括桌示)是一个复杂的任务,涉及多个关键技术栈的集成和深度定制。我们可以通过多种方式来实现 Android 系统的虚拟化和模拟器功能,类似于在普通操作系统中运行虚拟机…...

决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)

决策曲线分析(DCA)中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如…...

《经验分享 · 软考系统分析师》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...

记录一下 js encodeURI和encodeURIComponent URL转码问题

escape:由于它已经被废弃,不建议在任何新的代码中使用。encodeURI:当你需要对整个URI进行编码时使用,例如在将整个URL作为参数传递时。encodeURIComponent:当你需要编码URI中的某一部分,尤其是查询字符串参…...

【C语言】二维前缀和/求子矩阵之和

相信你是最棒哒!!! 目录 一、题目描述 正确代码 二、题目描述 题目代码 总结 一、题目描述 输入一个 𝑛 行 𝑚 列的整数矩阵,再输入 𝑞个询问,每个询问包含四个整数 𝑥1…...

SRS 服务器入门:实时流媒体传输的理想选择

在当今视频流媒体需求爆炸式增长的时代,如何选择一款高效、稳定且功能强大的流媒体服务器成为了许多开发者和企业关注的焦点。而 SRS(Simple Realtime Server)作为一款开源的流媒体服务器,以其卓越的性能和灵活的功能,…...

【ETCD】【源码阅读】configurePeerListeners() 函数解析

configurePeerListeners 是 ETCD 的一个核心函数,用于为集群中节点之间的通信配置监听器(Peer Listener)。这些监听器主要负责 Raft 协议的消息传递、日志复制等功能。函数返回一个包含所有监听器的列表。 函数签名 func configurePeerList…...

1_ssrf总结

content 什么是ssrf?简介原理 危害利用内网访问端口扫描fsockopenurlbypass127.0.0.0被禁止绕过302跳转DNS重绑定绕过 file协议dict协议gopher协议主从复制打redis打mysql打fastcgi协议打未授权redis Defence 什么是ssrf? 简介 SSRF(Server-Side Request Forger…...

深入解析 Redis

1. 为什么 Redis 性能至关重要? 在现代分布式应用中,Redis 被广泛作为缓存系统、消息队列、实时数据存储和会话管理等多种场景的解决方案。作为一个高性能的内存数据库,Redis 的设计理念是提供低延迟和高吞吐量的操作。然而,当 R…...

Visual Studio 2022发布UWP应用证书绑定失败

最近发布UWP应用时,卡在了关联产品这步,一直提示网络链接问题,获取不到产品信息。创建新项目也是这样,猜测低版本的VS不支持发布UWP应用了,便升级到了VS2022。VS2022创建新UWP工程确实可以关联发布应用,并成…...

K8S对接ceph的RBD块存储

1 PG数量限制问题 1.1 原因分析 1.还是老样子,先创建存储池,在初始化为rbd。 [rootceph141~]# ceph osd pool create wenzhiyong-k8s 128 128 Error ERANGE: pg_num 128 size 3 for this pool would result in 295 cumulative PGs per OSD (2067 tot…...

ragflow连不上ollama的解决方案

由于前期wsl默认装在C盘,后期部署好RagFlow后C盘爆红,在连接ollama的时候一直在转圈圈,问其他人没有遇到这种情况,猜测是因为内存不足无法加载模型导致,今天重新在E盘安装wsl 使用wsl装Ubuntu Win11 wsl-安装教程 如…...

ACL与Prefix List(前缀列表)

匹配工具一般搭配其他操作,可实现NAT,路由策略,策略路由,MQC,流量过滤等操作 通配符掩码 我们都知道子网掩码的1是精确匹配,1是大致匹配,1必须连续 我们也知道反掩码的1是大致匹配&#xff0…...

OpenSSH和OpenSSL升级

需求 centos7.9升级SSH和SSL OpenSSH升级为openssh9.8 OpenSSL升级为openssl-3.4.0 下载openssh最新版本与openssl对应版本 openssh最新版本下载地址 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gzOpenSSL下载地址 这里下载的是3.4.0 wg…...

数据库继续学习

数据库中的外键约束的作用是什么? 外键约束用于在多表操作中保证数据的一致性、完整性和正确性。它确保引用的数据在主表中存在,从而避免孤立记录的出现。 物理外键与逻辑外键的选择? 推荐使用逻辑外键。逻辑外键是指在应用程序层面上实现外键…...

车载以太网-UDPNM

文章目录 UDPNM定义在车载以太网中的作用网络节点状态监测唤醒和睡眠管理网络拓扑发现工作流程消息发送消息接收与处理与其他车载网络协议的比较和协作UDPNM的工作原理是什么?1.消息构建与发送原理消息格式构建发送机制2.消息接收与响应原理接收过程响应机制3.状态管理与定时器…...

网页核心页面设计(第8章)

一、伪元素 伪元素是 CSS 中的一种选择器,用于选择某些特定的元素或元素的一部分,而这些元素本身并不存在于文档的结构中。伪元素使得网页设计师可以更灵活地控制样式,从而可以为元素的内容、框架或文本提供额外的样式,增强网页的…...

在PowerShell下运行curl命令出现错误:Invoke-WebRequest : 无法处理参数,因为参数名称“u”具有二义性

今天在Windows 11下测试Nanamq的HTTP API,按照其文档输入: curl -i --basic -u admin:public -X GET "http://localhost:8081/api/v4/subscriptions" 结果出现二义性错误: 而且输入curl --help命令想看看参数说明的时候&#xff…...

医疗花费预测——协方差矩阵和热力图

引言 在医疗数据分析中,预测个人的医疗花费是一个重要的课题。这不仅有助于个人健康管理,也为医疗资源的合理分配提供了数据支持。本篇博客,我们将探讨如何利用协方差矩阵和热力图来分析和预测个人的医疗花费。我们将以DataFountain提供的数…...

react antd tabs router 基础管理后台模版

在构建 React 后台管理系统时,使用标签页的方式展示路由是一种高效且用户友好的设计模式。这种实现方式通常允许用户在多个页面之间快速切换,并保留页面的状态,类似于浏览器的多标签页功能。 需求分析 1.动态标签页:根据用户的导…...