原因分析IDEA導(dǎo)入Spring-kafka項目Gradle編譯失敗
前言
最近在弄kafka相關(guān)的東東,因為是spring boot工程,所以用到了Spring-kafka,一個包含了kafka-producer和kafka-consumer自動裝配的依賴。為了進(jìn)一步研究spring是如何封裝的kafka官方客戶端的細(xì)節(jié),所以從github上拉到了源碼準(zhǔn)備研究下,在導(dǎo)入到IDEA中時,因為Spring-kafka工程使用的是Gradle,導(dǎo)入時就編譯失敗了,導(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ā)生這個異常是因為Gradle版本更新導(dǎo)致的,在IDEA的環(huán)境下如果不配置本地的Gradle版本,默認(rèn)會去拉最新的Gradle版本5.x。而5.x很多人反饋有問題,如下github官方issue:
Gradle-issue:https://github.com/gradle/gradle/issues/8088
解決問題
如果說是升級導(dǎo)致的問題,那么我們降低版本就ok了。事實上,截止目前最新的版本是5.4.1,所以我嘗試了5.x的幾個低版本都不行,直到降到4.10.2版本的時候才順利的編譯并導(dǎo)入了項目。
經(jīng)測試,在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的包,當(dāng)然是4.x的版本的。直接解壓到本地目錄,然后打開IDEA的設(shè)置,找到如下箭頭所指向的配置
Gradle home選中自己剛解壓的目錄即可,提交后會自動觸發(fā)再次編譯
以上就是IDEA導(dǎo)入Spring-kafka項目Gradle編譯失敗原因的詳細(xì)內(nèi)容,更多關(guān)于IDEA導(dǎo)入Spring-kafka項目Gradle編譯失敗的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot+Vue前后端分離實現(xiàn)請求api跨域問題
這篇文章主要介紹了SpringBoot+Vue前后端分離實現(xiàn)請求api跨域問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06如何解決java.lang.NoClassDefFoundError:Could not initi
文章講述了在Java服務(wù)器中處理圖形元素時遇到的常見問題,即需要運行X-server,通過在Tomcat/bin/catalina.sh中增加JAVA_OPTS環(huán)境變量并設(shè)置-Djava.awt.headless=true,可以解決這個問題,使服務(wù)器能夠在沒有圖形界面的情況下運行2024-11-11spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法
這篇文章主要介紹了spring boot 自定義規(guī)則訪問獲取內(nèi)部或者外部靜態(tài)資源圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01