如何两步解决maven依赖导入失败的问题

目录
  • 解决maven依赖导入失败
    • 方案一
    • 方案二
  • maven导入JSTL依赖出现异常

解决maven依赖导入失败

由于网络问题,maven依赖经常会导入失败,私服上的以来导入失败概率低一些,maven中央仓库上的依赖导入失败的概率则相对较高,其实这个问题很容易解决,但是之前还是见到很多初学者对此不知道该如何解决,甚至有人在依赖导入失败,进而导致项目无法正常运行时还不知道是项目依赖导入失败,种种原因,我决定写这篇文章,像大伙介绍一下我在解决这个问题是常用的两招,基本上这两招打完,99%的问题都解决了,至于剩下的1%,只需要继续重复这两招,也能解决。

方案一

首先,一般安装好maven后,网上都会有教程将maven镜像站换为aliyun的镜像站,具体是在setting.xml文件的mirrors节点中添加如下配置:

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

如果本地没有setting.xml文件,则可以自行创建一个该文件,相关节点要和官方的一致。

但是这个方案也不是百分百有效的,我之前就遇到这样的情况,依赖死活下载不下来,镜像站已经改成aliyun的了,还是不行,后来尝试把这段配置注释掉,换回默认的下载源,就成功了,因此,当小伙伴遇到下载失败的情况时,可以在官方镜像站和aliyun之间进行切换,勿迷信某一个就能导入成功。

方案二

有的时候,依赖虽然下载失败了,但是相关文件夹中却多了以 .lastUpdated为后缀的文件,此时,如果开发者在开发工具中反复导入,会发现始终无法导入成功,这个时候就需要删除本地仓库中相关的 .lastUpdated文件,可以通过文件搜索找到本地仓库中所有的以 .lastUpdated为后缀的文件,如下:

找到后全部删除,再在开发工具中重新导入依赖。

注意:

这两种方案都试过之后,还是有可能导入失败,此时,只需要重复上面的步骤即可,我个人目前依赖下载失败的问题,都是通过以上两步解决的,屡试不爽。

maven导入JSTL依赖出现异常

(1)类转换异常 : 未能加载或实例化TagLibraryValidator类

org.apache.jasper.JasperException: 未能加载或实例化TagLibraryValidator类:[org.apache.taglibs.standard.tlv.JstlCoreTLV]

原因 :

没有导入依赖 standard jar 包导致的

完整的依赖是 (老版本 , javax包下的)

<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>jstl-api</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.glassfish.web/jstl-impl -->
    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>jstl-impl</artifactId>
      <version>1.2</version>
      <scope>runtime</scope>
    </dependency>

新版本 : (jakarta包下的)只用导入一个就可以了

<!-- jstl-api -->
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>2.0.0</version>
</dependency>

(2)如果出现 <%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> 爆红的概况

可能是因为没有导入standard包的相关依赖导致的

<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>

(3)java.lang.NoClassDefFoundError: (类定义未找到异常)javax/servlet/jsp/tagext/TagLibraryValidator

出现错误主要就是jar没有导完全 ,

使用jstl所需要的jar共有 :

<!-- servlet.jsp-api -->
<dependency>
    <groupId>jakarta.servlet.jsp</groupId>
    <artifactId>jakarta.servlet.jsp-api</artifactId>
    <version>3.0.0</version>
</dependency>
<!-- servlet-api -->
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>5.0.0</version>
    <scope>provided</scope>
</dependency>
<!-- jstl-api -->
<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
    <version>2.0.0</version>
</dependency>
<!-- jstl -->
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
</dependency>
<!--standard-impl-->
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
    <scope>runtime</scope>
</dependency>
<!--standard-spec-->
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于Maven导入pom依赖很慢的解决方案

    目录 Maven导入pom依赖很慢的问题 原因 第一步:找到maven的安装路径 ,修改settings.xml 第二步:重启idea 导入依赖发现会很快 Maven导入pom依赖很慢的问题 博主也经常遇到maven导入过慢这种问题,而心态爆炸,开发无法继续进行 原因 默认安装的maven使用官网地址下载依赖包,在国内访问比较慢. 将maven配置文件中下载依赖包地址修改成国内地址,一般都使用阿里的地址. 第一步:找到maven的安装路径 ,修改settings.xml <mirror> &l

  • idea创建maven父子工程导致子工程无法导入父工程依赖

    目录 1.目录类型需要手动设置 2.pom文件没有被加载,在maven管理界面是灰色的 3.子工程引入了父工程的依赖包,却无法使用 创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题.比如我的父工程名称是microservicecloud,子工程名称是microservicecloud-api. 那么子工程就会存在如下问题. 1.目录类型需要手动设置 2.pom文件没有被加载,在maven管理界面是灰色的 3.子工程引入了父工程的依赖包,却无法

  • Maven导入依赖时报错如何解决

    一.问题来源 1.遇到问题的环境:idea,windows. 2.遇到标题所诉的问题 如下图: 二.问题分析 遇到这个问题,就是说明你这个jar包没有导入. 三.解决办法 1.首先先确认你的maven的下面红框三个属性是不是正确的: 2.如果是不正确的,那就改正确重新导入依赖,如果正确,就看看报错信息,是不是因为没安装国内镜像导致的依赖jar包下载不了 3.如果上面的都没错,请查看上图中的Woke offline有没有给勾上,勾上就需要取消勾选,这个东西勾上了就不能联网了. 以上就是本文的全部内

  • Maven导入依赖时爆红的几种解决方法

    目录 问题1: 问题2: 问题3:运行程序,Springboot启动不了 问题4:Springboot内置的Tomcat服务器启动不了 问题5:devtools无反应 问题1: 大量依赖爆红 把存放依赖的文件删除了重新导一下找到依赖包存放位置 把local repository路径下内容全部删除,重新导入maven 问题2: pom.xml中 <build> <plugins> <plugin> <groupId>org.springframework.bo

  • 解决Maven中关于依赖导入不进的问题

    我们通过项目的reimport等众多办法无法解决之后: 假设这个是爆红的,因为被我已经解决了. 我们进入到我们的本地仓库, 新建包. 在repository中我们新建一个com\github\tobato\fastdfs-client\1.26.7 先是groupid -> artifactId -> version (-SNAPASHOT省略) 建立好文件夹之后,我们自己手动导入该jar包. 先检查自己的电脑是否配置了MAVEN 关于MAVEN3.6的配置 请查看 检查MVN的版本 确认是否

  • 如何两步解决maven依赖导入失败的问题

    目录 解决maven依赖导入失败 方案一 方案二 maven导入JSTL依赖出现异常 解决maven依赖导入失败 由于网络问题,maven依赖经常会导入失败,私服上的以来导入失败概率低一些,maven中央仓库上的依赖导入失败的概率则相对较高,其实这个问题很容易解决,但是之前还是见到很多初学者对此不知道该如何解决,甚至有人在依赖导入失败,进而导致项目无法正常运行时还不知道是项目依赖导入失败,种种原因,我决定写这篇文章,像大伙介绍一下我在解决这个问题是常用的两招,基本上这两招打完,99%的问题都解决

  • IDEA中Maven依赖下载失败的完美解决方案

    使用IDEA进行Maven项目开发时,时不时会遇到pom.xml报错的情况,其中很大概率是因为Maven依赖的jar包下载失败,找来找去也没有找到是什么问题,困扰了很多程序猿,这里给出IDEA中Maven依赖下载失败解决方案,给大家参考,实测有用. 文章目录首先检查网络有没有问题,确定网络没有问题,请看下一步多次点击重新导入Maven依赖的按钮设置自动导入Maven依赖在IDEA中找到Maven的配置文件的地址,然后检查配置的远程仓库或者镜像有没有问题如果上面几步都没有解决问题,可以使用以下脚本

  • IDEA中Maven依赖下载失败解决方案(小结)

    使用IDEA进行Maven项目开发时,时不时会遇到pom.xml报错的情况,其中很大概率是因为Maven依赖的jar包下载失败,找来找去也没有找到是什么问题,困扰了很多程序猿,这里给出IDEA中Maven依赖下载失败解决方案,给大家参考,实测有用. 首先检查网络有没有问题,确定网络没有问题,请看下一步 多次点击重新导入Maven依赖的按钮 重新导入Maven依赖有两种方式,如上图所示.如果多次点击重新导入依赖按钮依然报错,请看下一步 设置自动导入Maven依赖 Settings -> Build

  • 使用idea解决maven依赖冲突的问题

    前言:我们进行用maven 开发组件的时候,经常会遇到一种情况,我们添加一些maven依赖后,经常会出现本地原本正常的代码编译不过去 下面我们就将这种问题的解决思路和解决方案逐步讲解 记录报错的那几个类 将刚才添加的maven依赖都还原找到刚才报错的类的jar包的版本号 例如我们的文件fastjson-1.2.58 还原刚才加入的maven依赖在刚才编译报错的maven 模块上构建maven依赖体系 结果如下图所示 6.在构建结果中按ctrl+F 7.输入报错的jar包的名字 8.选中一个点进去

  • 教你两步解决conda安装pytorch时下载速度慢or超时的问题

    目录 1.为conda配置清华源 2.创建新的虚拟环境(若已创建,请忽略) 3.激活虚拟环境 4.安装pytorch 1.为conda配置清华源 打开cmd输入以下命令: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/

  • 详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)

    一:js引入 首先要从Echart下载 选择你想要的图表后,滑到最下面的下载 将下载好的文件放入 然后引入HTML中 <script src="echarts.min.js"></script> 二:maven引入 首先将maven依赖导入 <!-- https://mvnrepository.com/artifact/org.webjars.bower/echarts --> <dependency> <groupId>or

  • 关于maven依赖 ${xxx.version}报错问题

    目录 maven依赖 ${xxx.version}报错 在pom文件加入以下配置即可解决 maven依赖的版本号报错解决(玄学) 玄学解决 maven依赖 ${xxx.version}报错 pom.xml 引入依赖时,版本取<version>${xxx.version}</version>有时会报红, 在pom文件加入以下配置即可解决 <properties> <xxx.version>版本号</xxx.version> </propert

  • 解决IDEA中Maven依赖包导入失败报红问题(总结最有效8种解决方案)

    问题描述: 真的,说来话长,这应该是我花最多时间去解决关于Maven依赖包导入的问题,以前粘贴复制导入,自动下载成功了, 这次怎么搞,怎么让他自动下载都还是红红的一片, 花了大半天,各种尝试,只为搏得问题解决!!! 真的看着都难受, 但是, 终于, 还是让我搞定了,这次让我汇总所有最有可能解决这依赖问题的方法,下次遇到这种问题, 真的要说再见了 , 话不多开,开货!!!方案1:(本人平时遇到这问题的常规操作) 当一开始遇到导入的依赖报红了,直接把那段刚导入的对应依赖删了,然后又重新导入,它自动会

  • Maven之导入thymeleaf依赖飘红问题及解决

    目录 Maven导入thymeleaf依赖飘红 1.运行环境 2.遇到的问题 3.解决办法 thymeleaf在Maven的版本配置 Maven导入thymeleaf依赖飘红 1.运行环境 操作系统:win10 jdk版本:1.8 idea版本:2020.1 maven版本:3.3.9 springBoot版本:2.0.0 2.遇到的问题 在导入thymeleaf依赖时,刷新maven还是飘红,换版本同样是,我在maven仓库中找有 spring-boot-starter-thymeleaf 3

随机推荐