当前位置: 首页 > 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工程确实可以关联发布应用,并成…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...