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

日常遇到Maven出现依赖版本/缓存问题通用思路。

Maven依赖错误联想

明明自己的工程是直接从大佬哪里拉下来的,并且自己的setting文件也是没有问题,可是自己偏偏编译有问题。这里介绍一种通用解决方案,仅供参考。

前置排查确认

我遇到原因是在JDK升级过程中遇到的:

java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags

通过问题确认 确认是lombok版本问题导致的,但是我确认过了一下的一些操作 依然没有解决我的问题。
1.排查lombok所有版本,看是否有冲突
2.更换更新版本的lombok
3.mvn clean
4.reload all maven peojects
5.清理本地仓库
6.升级maven版本
7.调整modules的language level

针对于这样的问题 首先我们的第一思路 就是怀疑到是缓存的问题,那么我在这里去描述一下 我们遇到这类通用类的问题如何解决。

当你遇到Maven构建时感觉有缓存导致依赖问题,可以通过以下步骤进行排查和解决:

确认错误信息:
仔细阅读构建过程中的错误信息。这些错误通常会指出问题的来源,比如缺失的依赖、版本冲突等。

运行Maven的清理命令:
使用Maven的clean目标可以删除之前构建生成的所有文件(通常在target目录下)。

  • mvn clean

更新依赖:
使用Maven的dependency:purge-local-repository插件可以清除本地仓库中的项目依赖,强制重新下载:

  • mvn dependency:purge-local-repository

这将清理掉本地仓库中对应项目的依赖缓存。如果想清理所有依赖,可以使用-DreResolve=true选项。

清理Maven本地仓库:
如果怀疑是本地仓库中缓存的依赖有问题,可以手动删除本地仓库(默认位置在用户的.m2/repository目录下),但这是一个较为极端的做法,因为这会删除所有项目的所有本地依赖,之后Maven将不得不重新下载这些依赖。

强制更新快照(SNAPSHOT)依赖:
如果项目中使用了快照依赖,可以通过以下命令强制Maven检查远程仓库中快照的最新状态,并下载更新:

mvn clean install -U
这里的-U参数告诉Maven强制更新快照依赖。

检查Maven的设置文件:
确认~/.m2/settings.xml文件中配置正确,没有指向错误的仓库。

审查项目依赖:
检查项目的pom.xml文件,确认依赖声明正确无误,没有冲突的版本号或不正确的依赖范围。

使用Maven的依赖分析工具:
Maven提供了依赖分析插件,可以帮助分析项目的依赖情况:

  • mvn dependency:analyze

这可以帮助发现潜在的问题,比如未声明或者未使用的依赖。

构建环境隔离:
确保你的构建环境是干净的,没有其他项目构建产生的干扰。在CI/CD系统中,通常每次构建都会使用一个干净的环境。

使用Maven的详细输出:
在执行Maven命令时,添加-X参数可以让Maven提供更详细的输出,有助于诊断问题:

  • mvn clean install -X

整体上的思路就是需要删除本地工程,进行重新拉去你的代码工程,并且在shared build process VM options中配置

-Djps.track.ap.dependencies=false

勾选 Enable annotation processing

重新build一下 基本依赖类的问题都可以解决。

http://www.lryc.cn/news/303056.html

相关文章:

  • 安卓11-HDMI插拔检测流程
  • OkHttp Retrofit HttpClient之间的区别
  • Paddlepaddle使用自己的VOC数据集训练目标检测(0废话简易教程)
  • 【解析】C语言两个实例
  • 阅读笔记(Multimedia Systems2020)Review on image-stitching techniques
  • 【Java程序员面试专栏 数据结构】三 高频面试算法题:栈和队列
  • Python | Conda常用命令
  • Linux 驱动开发基础知识——APP 怎么读取按键值(十二)
  • 【FastAPI】P3 请求与响应
  • Python学习-流程图、分支与循环(branch and loop)
  • Python Flask Web 框架学习笔记+完整项目
  • XML Map 端口进阶篇——常用关键字和格式化器详解
  • 排序算法之——直接插入排序
  • 突出最强算法模型——回归算法 !!
  • 云数据库 Redis 性能深度评测(阿里云、华为云、腾讯云、百度智能云)
  • Android---Retrofit实现网络请求:Java 版
  • 使用静态CRLSP配置MPLS TE隧道
  • gentoo安装笔记
  • Git如何使用 五分钟快速入门
  • FreeRTOS学习笔记——(FreeRTOS临界段代码保护及调度器挂起与恢复)
  • 箱形理论在交易策略中的实战应用与优化
  • MinIO 和 Apache Tika:文本提取模式
  • c编译器学习05:与chibicc类似的minilisp编译器(待续)
  • 手撕qsort函数
  • 项目在linux上的简单部署
  • MySQL安装教程(详细版)
  • Linux platform tree下的单总线驱动程序设计(DHT11)
  • 自研爬虫框架的经验总结(理论及方法)
  • 配置基于 AWS CRT 的 HTTP 客户端
  • 挑战杯 基于LSTM的天气预测 - 时间序列预测