相关文章推荐
有胆有识的灌汤包  ·  Oops!!! - 简书·  1 年前    · 

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

作者:香草天空Sky

这篇文章主要介绍了如何两步解决maven依赖导入失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

解决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>

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

您可能感兴趣的文章:
  • springboot应用中静态资源访问与接口请求冲突问题解决
    springboot应用中静态资源访问与接口请求冲突问题解决
    2023-06-06
  • Java初学者必会的Map集合及其原理
    Java初学者必会的Map集合及其原理
    2023-06-06
  • 关于maven本地仓库的配置方式
    关于maven本地仓库的配置方式
    2023-06-06
  • java案例实战之字符串转换为二进制
    java案例实战之字符串转换为二进制
    2023-06-06
  • Maven重复依赖问题解决(同一个jar多个版本)
    Maven重复依赖问题解决(同一个jar多个版本)
    2023-06-06
  • SpringBoot 下的 Static 文件夹打包成前端资源的示例代码
    SpringBoot 下的 Static 文件
    2023-06-06
  • Springboot如何实现代理服务器
    Springboot如何实现代理服务器
    2023-06-06
  • Spring Boot 启动注解过程分析
    Spring Boot 启动注解过程分析
    2023-06-06
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号