原因分析IDEA導入Spring-kafka項目Gradle編譯失敗
前言
最近在弄kafka相關的東東,因為是spring boot工程,所以用到了Spring-kafka,一個包含了kafka-producer和kafka-consumer自動裝配的依賴。為了進一步研究spring是如何封裝的kafka官方客戶端的細節(jié),所以從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
具體原因
發(fā)生這個異常是因為Gradle版本更新導致的,在IDEA的環(huán)境下如果不配置本地的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選中自己剛解壓的目錄即可,提交后會自動觸發(fā)再次編譯
以上就是IDEA導入Spring-kafka項目Gradle編譯失敗原因的詳細內容,更多關于IDEA導入Spring-kafka項目Gradle編譯失敗的資料請關注腳本之家其它相關文章!
相關文章
SpringBoot SpEL語法掃盲與查詢手冊的實現(xiàn)
這篇文章主要介紹了SpringBoot SpEL語法掃盲與查詢手冊的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05
構建SpringBoot+MyBatis+Freemarker的項目詳解
在本篇內容里小編給大家整理的是關于構建SpringBoot+MyBatis+Freemarker的項目的具體步驟以及實例代碼,需要的朋友們參考下。2019-06-06
SpringMVC中Model和ModelAndView的EL表達式取值方法
下面小編就為大家分享一篇SpringMVC中Model和ModelAndView的EL表達式取值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
JavaWeb實現(xiàn)學生管理系統(tǒng)的超詳細過程
學生信息管理系統(tǒng)是針對學校人事處的大量業(yè)務處理工作而開發(fā)的管理軟件,主要用于學校學生信息管理,下面這篇文章主要給大家介紹了關于JavaWeb實現(xiàn)學生管理系統(tǒng)的超詳細過程,需要的朋友可以參考下2023-05-05

