原因分析IDEA导入Spring-kafka项目Gradle编译失败

 更新时间:2022年02月25日 17:19:55   作者:kl  
这篇文章主要为大家介绍分析了IDEA导入Spring-kafka项目Gradle中编译失败原因及解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

前言

最近在弄kafka相关的东东,因为是spring boot工程,所以用到了Spring-kafka,一个包含了kafka-producer和kafka-consumer自动装配的依赖。为了进一步研究spring是如何封装的kafka官方客户端的细节,所以从github上拉到了源码准备研究下,在导入到IDEA中时,因为Spring-kafka工程使用的是Gradle,导入时就编译失败了,导入工程失败。

Spring-kafka地址:https://github.com/spring-projects/spring-kafka

异常信息

java.lang.AbstractMethodError
	at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:205)
	at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:192)
	at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaDataFromCache(CachingModuleComponentRepository.java:212)
	at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:185)
	at org.gradle.api.internal.artifacts.ivyservice.ivyresolve

具体原因

发生这个异常是因为Gradle版本更新导致的,在IDEA的环境下如果不配置本地的Gradle版本,默认会去拉最新的Gradle版本5.x。而5.x很多人反馈有问题,如下github官方issue:

Gradle-issue:https://github.com/gradle/gradle/issues/8088

解决问题

如果说是升级导致的问题,那么我们降低版本就ok了。事实上,截止目前最新的版本是5.4.1,所以我尝试了5.x的几个低版本都不行,直到降到4.10.2版本的时候才顺利的编译并导入了项目。

经测试,在Gradle的4.6版本下会抛如下异常,提示找不到xxx.jar的信息:

Cannot find JAR 'bcprov-jdk15on-1.58.jar' required by module 'gradle-dependency-management' using classpath or distribution directory 'E:\runtime\gradle-4.6'

所以如果你也是编译Spring-kafka项目,直接选择4.10.2版本就ok了

Gradle下载地址:http://services.gradle.org/distributions/

从上面的地址中找到-bin.zip的包,当然是4.x的版本的。直接解压到本地目录,然后打开IDEA的设置,找到如下箭头所指向的配置

Gradle home选中自己刚解压的目录即可,提交后会自动触发再次编译

以上就是IDEA导入Spring-kafka项目Gradle编译失败原因的详细内容,更多关于IDEA导入Spring-kafka项目Gradle编译失败的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot SpEL语法扫盲与查询手册的实现

    SpringBoot SpEL语法扫盲与查询手册的实现

    这篇文章主要介绍了SpringBoot SpEL语法扫盲与查询手册的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java某个经纬度是否在genjson文件中问题

    Java某个经纬度是否在genjson文件中问题

    GeoJSON是一种用于地理空间信息数据交换的格式,基于JSON,要判断某个经纬度是否在某个区域内,首先需要解析GeoJSON文件,确定区域边界,然后使用经纬度进行比较
    2024-11-11
  • Java基础之详解HashSet的使用方法

    Java基础之详解HashSet的使用方法

    今天给大家带来的是关于Java基础的相关知识,文章围绕着HashSet的使用方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 构建SpringBoot+MyBatis+Freemarker的项目详解

    构建SpringBoot+MyBatis+Freemarker的项目详解

    在本篇内容里小编给大家整理的是关于构建SpringBoot+MyBatis+Freemarker的项目的具体步骤以及实例代码,需要的朋友们参考下。
    2019-06-06
  • 基于XML配置Spring的自动装配过程解析

    基于XML配置Spring的自动装配过程解析

    这篇文章主要介绍了基于XML配置Spring的自动装配过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java开发之HashMap的使用和遍历

    Java开发之HashMap的使用和遍历

    这篇文章主要介绍了Java开发之HashMap的使用和遍历的相关资料,这里提供一个HashMap的简单实例并结合List使用,需要的朋友可以参考下
    2017-08-08
  • Java进阶之走进RESTful接口

    Java进阶之走进RESTful接口

    RESTful是代表REST化,或者说设计遵从REST架构的,所以要了解RESTful就需要了解REST.文中详细介绍了Java RESTful,需要的朋友可以参考下
    2021-05-05
  • 记录一个使用Spring Data JPA设置默认值的问题

    记录一个使用Spring Data JPA设置默认值的问题

    这篇文章主要介绍了使用Spring Data JPA设置默认值的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • SpringMVC中Model和ModelAndView的EL表达式取值方法

    SpringMVC中Model和ModelAndView的EL表达式取值方法

    下面小编就为大家分享一篇SpringMVC中Model和ModelAndView的EL表达式取值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • JavaWeb实现学生管理系统的超详细过程

    JavaWeb实现学生管理系统的超详细过程

    学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,下面这篇文章主要给大家介绍了关于JavaWeb实现学生管理系统的超详细过程,需要的朋友可以参考下
    2023-05-05

最新评论