Maven(解决思路)

1.前言

       作为一名一线的开发人员,maven大概率是我们用的最多的依赖管理,但是你知道我们的maven出现问题后怎么去排查么?不对,确切的来说,假如你去导入的包没有被成功导入,你有什么方法去排查、去解决这个问题,接下来一文,带你了解maven的保姆级解决思路。

2.武林秘籍

       这篇我称为武林秘籍应该丝毫不过分吧,那么正片开始 !!!


一切的源头都是因为依赖包中的枚举类找不到导致的,最后的问题大家一定想不到,但是排查问题的思路确实我们需要去学习的

2.1 版本号

        每个依赖它都是有自己的版本号的,随着业务能力的更替,版本号也在快速更新,我们首先要确定我们在当前项目中用的依赖版本号是不是最新的,更为恰当的来说,应该是我们引用的依赖是不是提供了我们当前所需要的能力,所以首先排查版本号最最简单、最便利的

2.2 依赖冲突

我们的maven依赖它是具有传递性的,所以很可能会造成这么一种情况

我们引用A的依赖,同时A中又引用了B的低版本依赖,我们这边又在本项目中引用了B的高版本依赖,这个时候就会出现依赖版本冲突,可能会导致我们引用到了低版本的依赖,导致某些类或者是某些方法找不到的情况,所以这个时候我们要学会用maven自带的Dependdency来解决分析


像这种有报红的就说明有版本冲突,需要解决,把自己所需要的版本留下即可

2.3 快照包需要注意提交时间

        因为我们的maven有两种包,一种是正式包,另外一种是快照包,它们的唯一区别就是快照包可以随时更改代码,等上线的时候可以改为正式包,但是正式包就不可以随意更改代码了,如果想要更改代码,只能升级自己的版本进行迭代

        我们在用快照包的时候,可能会发现这么一种情况 ,就是=明明你另外一个项目的代码已经修改了,但是打包之后,在我们这个项目中却找不到你这次更新的内容,是在令人头疼。

本地仓库可视化工具:https://nexus.zhuanspirit.com/nexus/#nexus-search;quick~openreco.contract

        我们在本地仓库中可以快速的找到我们所依赖的版本,因为快照版本质检没有明显的区别,所以我们只能看我们引用的版本是什么时候提交的作为判断:

找到我们目标jar包

如果这个最近的更新时间不是你刚才打包的时间,那就说明你刚才打包失败了,重新打包上传

2.4清除idea缓存

        idea是通过索引来加速文件和依赖的查找的,如果索引出现问题,依赖自然而然就找不到了,所以我们清除idea缓存,使其重新加载索引及其他内容

2.5 远程仓库

        如果我们还是解决不了依赖问题,我们可以去检查一下我们的依赖包是否成功的被推到远程仓库中,在maven的settings中我们可以找到我们的远程仓库的地址

我们可以根据目录去找我们所需要的依赖的包是否存在,版本是否正确、更新时间是否是最新的

2.6 反编译

        如果还是有问题,那么还有一种可能就是他自身打包的时候出现了问题,我们可以根据反编译工具对其项目进行查看

我们常用的反编译工具有两种,一是gui,另外一种是luten

但是我还是比较推荐luten的,因为有些内容gui是没办法反编译出来的,导致

我们手动的将项目编译成jar包,然后利用工具再把jar包反编译出来,检查是否存在问题

打包过程:

2.7 重启电脑

都说重启能解决99%的问题

2.8 idea的正盗版问题

        我当时就是这个问题,解决个maveny依赖真是费劲了千辛万苦,最后才发现是idea本身的问题,下载了一个最新的社区版,完美解决这个问题

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

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

相关文章

Linux-Centos操作系统备份及还原(整机镜像制作与还原)--再生龙

适用场景 Linux系统设备需要备份整机数据,或者需要还原到多台设备上。适用再生龙工具进行整机备用和还原。 镜像制作 下载再生龙镜像:clonezilla-live-2.6.4-10-amd64.iso,制作启动盘-设置U盘启动 启动后界面如下选择第四项other modes of…

力扣143:重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示…

java List对象集合中 如何根据集合中对象某几个属性组合去重

在Java中,如果你想要根据一个List中的对象的几个属性进行去重,可以使用以下几种方法: 方法一:使用 Set 和自定义的 equals() 和 hashCode() 你可以创建一个自定义类,并为这个类实现equals()和hashCode()方法。然后使用…

如何使用的是github提供的Azure OpenAI服务

使用的是github提供的Azure OpenAI的服务gpt-4o 说明:使用的是github提供的Azure OpenAI的服务,可以无限薅羊毛。开源地址 进入: 地址 进入后点击 右上角“Get API key”按钮 点击“Get developer key” 选择Beta版本“Generate new to…

HarmonyOS开发 - 本地持久化之实现LocalStorage实例

用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。 说明&#x…

C#通过异或(^)运算符制作二进制加密(C#实现加密)

快速了解异或运算符&#xff1a; 异或运算符在C#中用 “^” 来表示 口诀&#xff1a;相同取0&#xff0c;相异取1 简单加密解密winform示例&#xff1a; /// <summary>/// 异或运算符加密实现/// </summary>/// <param name"p_int_Num">初始值<…

快速创建一个微信小程序,详细步骤以及示范程序代码

创建一个微信小程序涉及前端和后端的搭建与联调。以下是一个快速创建微信小程序的详细步骤以及示范程序代码。 一、注册微信小程序账号 前往微信公众平台&#xff0c;注册一个小程序账号并完成相关设置。注册完成后&#xff0c;获取小程序的AppID&#xff0c;这是后续开发过程…

中小企业设备维护新策略:Spring Boot系统设计与实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

关系型数据库(1)----MySQL(初阶)

目录 1.mysql 2.mysqld 3.mysql架构 1.连接层 2.核心服务层 3.存储引擎层 4.数据存储层 4.SQL分类 5.MySQL操作库 6.MySQL数据类型 1. 数值类型 2. 日期和时间类型 3. 字符串类型 4. 空间类型 5. JSON数据类型 7.MySQL表的约束 1. 主键约束&#xff08;PRIMARY…

O2OA如何实现文件跨服务器的备份

O2OA可以外接存储服务器&#xff0c;但是一个存储服务器上怕磁盘损坏等问题导致文件丢失&#xff0c;所以需要实现文件跨服务器备份。 整体过程&#xff1a; 1、SSH免密登录配置 2、增加一个同步推送文件的.sh文件 3、编辑crontab 增加定时任务执行上一步的.sh文件 一、配…

每日一题——第一百一十九题

题目&#xff1a;分解质因数 #include <stdio.h> #include <stdbool.h> // 引入stdbool.h头文件以使用bool类型void printPrimeFactors(int n) {bool isFirstFactor true; // 用于跟踪是否打印了第一个因数// 打印出2的所有次数&#xff0c;直到n不再为偶数while…

SpringBoot中EasyExcel使用实践总结

【1】导出数据返回ResponseEntity 版本是3.1 RequestMapping(value "/export",method {RequestMethod.POST, RequestMethod.GET}) public ResponseEntity<byte[]> export(HttpServletRequest request) throws UnsupportedEncodingException {List<FmIn…

信道容量香农公式

目录 信道容量DMC信道BSC信道香农公式提升信道容量香农限 信道容量 信道容量&#xff1a;信道所能传送的最大信息量 C max ⁡ p ( x i ) I ( X ; Y ) C\max_{p(x_i)}I(X;Y) Cp(xi​)max​I(X;Y) 单位时间的信道容量&#xff1a;单位时间内信道所能传送的最大信息量 C t 1 t…

全面指南:Visual Studio Code 的下载、安装、使用与插件管理

活着&#xff0c;就是一场盛大的遇见&#xff0c;与世界&#xff0c;与自己&#xff0c;与每一个瞬间的奇迹 文章目录 前言下载 Visual Studio Code安装 Visual Studio CodewindowsmacOSLinux 使用 Visual Studio CodeVisual Studio Code 插件安装方法语言支持代码格式化与美化…

vue3项目中引入阿里图标库

开篇 本篇的主题是在vue3项目中引入阿里图标库 步骤 注册阿里图标库账号(阿里图标)&#xff0c;并创建项目 将图标加入项目中 将需要的图标先加入购物车&#xff0c;随后加入到项目中 生成项目代码 在项目中生成项目代码&#xff0c;便于后续复制到vue项目中 ## 在vue3项目…

HTML5教程(一)- 网页与开发工具

1. 什么是网页 网页 基于浏览器阅读的应用程序&#xff0c;是数据&#xff08;文本、图像、视频、声音、链接等&#xff09;展示的载体常见的是以 .html 或 .htm 结尾的文件 网站 使用 HTML 等制作的用于展示特定内容相关的网页集合。 2. 网页的组成 浏览器 代替用户向服务…

C#中的委托、匿名方法、Lambda、Action和Func

委托 委托概述 委托是存有对某个方法的引用的一种引用类型变量。定义方法的类型&#xff0c;可以把一个方法当作另一方法的参数。所有的委托&#xff08;Delegate&#xff09;都派生自 System.Delegate 类。委托声明决定了可由该委托引用的方法。 # 声明委托类型 委托类型声…

现代Web酒店客房管理:基于Spring Boot的实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

基于单片机优先级的信号状态机设计

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、背景知识二、使用步骤1.定义相应状态和信号列表2.获取最高优先级信号3.通用状态机实现4.灯的控制函数 总结 前言 在嵌入式系统中&#xff0c;设备控制的灵…

什么是甘特图?

甘特图&#xff08;Gantt Chart&#xff09;是一种条形图&#xff0c;用于项目管理中展示项目的进度计划。它以图形化的方式显示了项目中的各个任务及其时间安排&#xff0c;帮助项目经理和团队成员更好地理解和跟踪项目的时间线、依赖关系以及完成情况。甘特图是项目管理中非常…