原因分析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很多人反饋有問(wèn)題,如下github官方issue:
Gradle-issue:https://github.com/gradle/gradle/issues/8088
解決問(wèn)題
如果說(shuō)是升級(jí)導(dǎo)致的問(wèn)題,那么我們降低版本就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的版本的。直接解壓到本地目錄,然后打開(kāi)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)文章
Java開(kāi)發(fā)必備知識(shí)之?dāng)?shù)組詳解
數(shù)組對(duì)于每一門編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同.本篇文章為大家整理了Java最全關(guān)于數(shù)組的知識(shí)點(diǎn),并給出其對(duì)應(yīng)的代碼,需要的朋友可以參考下2021-06-06
SpringBoot+Vue前后端分離實(shí)現(xiàn)請(qǐng)求api跨域問(wèn)題
這篇文章主要介紹了SpringBoot+Vue前后端分離實(shí)現(xiàn)請(qǐng)求api跨域問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
IDEA常量字符串過(guò)長(zhǎng)問(wèn)題及解決方案
在編譯Java項(xiàng)目時(shí)遇到“常量字符串過(guò)長(zhǎng)”錯(cuò)誤,可以通過(guò)修改編譯器設(shè)置解決,具體方法是進(jìn)入IDE的設(shè)置(File>>Settings>>Build, Execution, Deployment>>Compiler>>Java Compiler),將使用的編譯器更改為Eclipse,如果問(wèn)題依舊2024-10-10
如何解決java.lang.NoClassDefFoundError:Could not initi
文章講述了在Java服務(wù)器中處理圖形元素時(shí)遇到的常見(jiàn)問(wèn)題,即需要運(yùn)行X-server,通過(guò)在Tomcat/bin/catalina.sh中增加JAVA_OPTS環(huán)境變量并設(shè)置-Djava.awt.headless=true,可以解決這個(gè)問(wèn)題,使服務(wù)器能夠在沒(méi)有圖形界面的情況下運(yùn)行2024-11-11
spring boot 自定義規(guī)則訪問(wèn)獲取內(nèi)部或者外部靜態(tài)資源圖片的方法
這篇文章主要介紹了spring boot 自定義規(guī)則訪問(wèn)獲取內(nèi)部或者外部靜態(tài)資源圖片的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01

