原因分析IDEA導(dǎo)入Spring-kafka項(xiàng)目Gradle編譯失敗
前言
最近在弄kafka相關(guān)的東東,因?yàn)槭莝pring boot工程,所以用到了Spring-kafka,一個(gè)包含了kafka-producer和kafka-consumer自動(dòng)裝配的依賴。為了進(jìn)一步研究spring是如何封裝的kafka官方客戶端的細(xì)節(jié),所以從github上拉到了源碼準(zhǔn)備研究下,在導(dǎo)入到IDEA中時(shí),因?yàn)镾pring-kafka工程使用的是Gradle,導(dǎo)入時(shí)就編譯失敗了,導(dǎo)入工程失敗。
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ā)生這個(gè)異常是因?yàn)镚radle版本更新導(dǎo)致的,在IDEA的環(huán)境下如果不配置本地的Gradle版本,默認(rèn)會(huì)去拉最新的Gradle版本5.x。而5.x很多人反饋有問題,如下github官方issue:
Gradle-issue:https://github.com/gradle/gradle/issues/8088
解決問題
如果說是升級(jí)導(dǎo)致的問題,那么我們降低版本就ok了。事實(shí)上,截止目前最新的版本是5.4.1,所以我嘗試了5.x的幾個(gè)低版本都不行,直到降到4.10.2版本的時(shí)候才順利的編譯并導(dǎo)入了項(xiàng)目。
經(jīng)測(cè)試,在Gradle的4.6版本下會(huì)拋如下異常,提示找不到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項(xiàng)目,直接選擇4.10.2版本就ok了
Gradle下載地址:http://services.gradle.org/distributions/

從上面的地址中找到-bin.zip的包,當(dāng)然是4.x的版本的。直接解壓到本地目錄,然后打開IDEA的設(shè)置,找到如下箭頭所指向的配置

Gradle home選中自己剛解壓的目錄即可,提交后會(huì)自動(dòng)觸發(fā)再次編譯
以上就是IDEA導(dǎo)入Spring-kafka項(xiàng)目Gradle編譯失敗原因的詳細(xì)內(nèi)容,更多關(guān)于IDEA導(dǎo)入Spring-kafka項(xiàng)目Gradle編譯失敗的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot SpEL語法掃盲與查詢手冊(cè)的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot SpEL語法掃盲與查詢手冊(cè)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Java某個(gè)經(jīng)緯度是否在genjson文件中問題
GeoJSON是一種用于地理空間信息數(shù)據(jù)交換的格式,基于JSON,要判斷某個(gè)經(jīng)緯度是否在某個(gè)區(qū)域內(nèi),首先需要解析GeoJSON文件,確定區(qū)域邊界,然后使用經(jīng)緯度進(jìn)行比較2024-11-11
構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目詳解
在本篇內(nèi)容里小編給大家整理的是關(guān)于構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目的具體步驟以及實(shí)例代碼,需要的朋友們參考下。2019-06-06
記錄一個(gè)使用Spring?Data?JPA設(shè)置默認(rèn)值的問題
這篇文章主要介紹了使用Spring?Data?JPA設(shè)置默認(rèn)值的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法
下面小編就為大家分享一篇SpringMVC中Model和ModelAndView的EL表達(dá)式取值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03
JavaWeb實(shí)現(xiàn)學(xué)生管理系統(tǒng)的超詳細(xì)過程
學(xué)生信息管理系統(tǒng)是針對(duì)學(xué)校人事處的大量業(yè)務(wù)處理工作而開發(fā)的管理軟件,主要用于學(xué)校學(xué)生信息管理,下面這篇文章主要給大家介紹了關(guān)于JavaWeb實(shí)現(xiàn)學(xué)生管理系統(tǒng)的超詳細(xì)過程,需要的朋友可以參考下2023-05-05

