首页 > 其他分享 >maven依赖项爆红解决方法(详细)

maven依赖项爆红解决方法(详细)

时间:2024-03-15 23:29:17浏览次数:23  
标签:Maven 依赖 仓库 maven 编译 爆红 缓存 构建

因为解决爆红要反复下载依赖项进行多次尝试,所以maven下载速度慢的小伙伴可以参考这篇文章

解决maven依赖下载很慢的问题
https://blog.csdn.net/m0_73642416/article/details/136751868

 1.尝试删除旧的依赖的缓存

有时候依赖问题可能是由于本地仓库缓存中的文件损坏或不一致引起的。你可以尝试清理本地仓库缓存,然后让 Maven 重新下载依赖

Maven 的仓库缓存通常位于用户目录下的 /.m2 文件夹中,Maven 仓库缓存包括两个主要部分:

1. 本地仓库:这是一个在本地计算机上存储项目依赖的地方。默认情况下,本地仓库位于用户的主目录下的 `.m2/repository` 文件夹中。在这个文件夹中,Maven 会下载并缓存项目的依赖,以便它们可以在不同的项目之间共享和重复使用。

2. 远程仓库:这是 Maven 从中下载依赖的远程服务器。当 Maven 编译项目时,它会从远程仓库中下载所需的依赖,并将它们缓存到本地仓库中。

如果你想要查看本地仓库的位置,你可以在命令行中运行以下命令:

mvn help:evaluate -Dexpression=settings.localRepository

这将输出本地仓库的位置。通常情况下,这个位置是在用户的主目录下的 /.m2/repository 文件夹中

直接删除(别删错了,删的是repository),然后重启IDEA

建议下载一个查找文件的软件,叫做everything

长这样

直接搜索.m2文件即可

但是请记住,.开头的文件通常是被隐藏的,想要查看记得打开查看中隐藏的项目选项

 

2.依赖版本问题

不同版本的依赖之间可能不能正常允许,例如spring整合mybatis时导入的依赖版本是有限制的,版本对不上依然会报错

除非已经很熟练了,不然不建议自己写依赖的坐标

最好去maven仓库找坐标,官网如下

https://mvnrepository.com/

3.依赖项的scope问题

有些依赖项可能只在特定的scope下可用,以下是 Maven 中常见的依赖范围:

  1. compile:默认的依赖范围,适用于所有阶段。这意味着依赖项将在编译、测试和运行时都可用。

  2. provided:这个范围表明依赖项在编译和测试阶段可用,但在运行时由目标环境(如服务器容器)提供。这通常用于 Servlet API 等在编译和测试时需要,但在部署时由容器提供的依赖。

  3. runtime:这个范围表示依赖项在运行时和测试时可用,但在编译时不需要。

  4. test:这个范围表示依赖项仅在测试编译和执行测试时可用,不会被包含在最终构建产物中。

确保依赖项的范围配置正确非常重要,特别是在涉及到需要在特定阶段可见性的依赖项时。如果依赖项的范围配置不正确,可能会导致编译错误、运行时错误或者构建产物中包含不应该包含的依赖项。

4.重建项目

有时候依赖问题可能是由于项目本身的配置问题或者依赖冲突引起的。在这种情况下,重新构建整个项目可能会更有效

重新构建项目可以确保所有的依赖被正确地解析、下载和安装,同时也可以清除可能存在的编译残留物和缓存

重新构建项目的步骤通常包括:

  1. 清理项目:运行 Maven 的 clean 命令,以清除先前构建的输出和临时文件。

  2. 重新构建:运行 Maven 的 install 或 package 命令,以重新构建整个项目并生成最终的构建产物。

重新构建项目可能会消耗一些时间,但通常可以解决一些复杂的依赖问题,尤其是当出现了依赖冲突或者项目配置问题时

标签:Maven,依赖,仓库,maven,编译,爆红,缓存,构建
From: https://blog.csdn.net/m0_73642416/article/details/136752176

相关文章

  • maven高级21_基于maven构建SSM工程3
    一、需求描述本案例基于maven构建SSM(Spring+SpringMVC+Mybatis)工程,通过maven坐标进行依赖管理。最终实现根据id查询商品信息的功能。二、实现步骤分析1、数据库环境搭建​①创建数据库ssmtest ​②创建商品表itemCREATETABLE`item`(`id`int(11)NOTNULLa......
  • maven高级21_maven的依赖冲突2
    一、什么是maven的依赖传递在maven中,依赖是可以传递的,假设存在三个项目,分别是项目A,项目B以及项目C。假设C依赖B,B依赖A,那么我们可以根据maven项目依赖的特征不难推出项目C也依赖A。 通过上面的图可以看到,我们的web项目直接依赖了spring-webmvc,而spring-webmvc依赖了......
  • Gateway过滤器中调用OpenFeign时出现循环依赖问题
    为了保证JWT随机生成的密钥一致,我设计了一个token服务,专门获取JWT,和生成token。在网关使用client调用服务时,出现了bean循环依赖Thedependenciesofsomeofthebeansintheapplicationcontextformacycle:┌─────┐|gateWayGlobalFilterdefinedinfile[C:\Us......
  • 授之以渔不是授之以鱼-docker maven 构建java工程
    原始的maven构建语句mvncleaninstall-Dmaven.test.skip=true现在需要在一台新的安装有docker的机子上构建,要求用jdk17和maven3.9,这台机子较旧,只有jdk8和jdk11,但是有安装docker,在不动构建机器现有软件的情况下构建。dockerrun\--rm\-v$(pwd):$(pwd)......
  • 常见问题解决 --- idea与maven使用常识
    1.拿到项目代码后先要知道使用了哪些技术和工具。比如使用的是idea、eclipse还是maven创建的项目,使用什么编程语言,使用什么项目目录结构等等2.如何用maven创建的项目必然有pom.xml,每次修改pom文件后必须重新加载。3.如果修改代码后还是报错,尝试使用clean清除编译缓存再同步maven......
  • Maven中optional标签详解(转)
    原文:https://blog.csdn.net/weixin_43888891/article/details/130510971作者:怪咖@来源:CSDN 一、前言<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version><optio......
  • Maven 中<optional>true</optional>和<scope>provided</scope>之间的区别(转)
    原文:https://segmentfault.com/a/1190000019266080?utm_source=tag-newest<optional>true</optional>和<scope>provided</scope>有什么区别呢?从语义来上理解optional可选的,可以理解为此功能/此依赖可选,如果不需要某项功能,可以不引用这个包。scopeprovided提供的,可以理解为此......
  • Maven
    Maven是用于管理和构建Java项目的工具,是apache旗下的开源项目Maven的作用:依赖管理项目构建统一项目结构依赖管理工具:管理规模庞大的jar包及其中的依赖关系依赖:junit-4.12依赖hamcrest-core-1.3依赖管理需要解决的具体问题:jar包下载jar包的依赖:通过依赖的传递性自......
  • 面试官:Spring Boot 微服务中你使用了哪些 starter maven 依赖项?这些 starter 到底是什
    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点面试官:SpringBoot微服务中你使用了哪些startermaven依赖项在SpringBoot微服务中,可以使用大量的StarterMaven依赖项来简化项目配置和快速集成各种功能,包括......
  • 如何依赖机器人安装极狐GitLab
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。极狐GitLab依赖机器人dependabot-gitlab使用dockercompose安装说明......