初學(xué)gradle,一切都還在摸索的過程中。今天剛剛試圖將之前基于ant + ivy的一個(gè)小項(xiàng)目轉(zhuǎn)移到gradle下,結(jié)果在和sonar集成時(shí)出現(xiàn)問題。
gradle中支持sonar的方式很簡單,gradle提供了一個(gè)sonar的plugin,簡單的在build.gradle中配置一下就好了:
Java代碼
apply plugin: 'sonar'
sonar {
serverUrl = "http://192.168.0.40:9000"
globalProperty "sonar.jdbc.url", "jdbc:mysql://192.168.0.40:3306/sonar?useUnicode=true&characterEncoding=utf8"
globalProperty "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
globalProperty "sonar.jdbc.username", "sonar"
globalProperty "sonar.jdbc.password", "sonar"
}
結(jié)果非常意外失敗了!一個(gè)無恥的失敗: Plugin with id 'sonar' not found !
很是暈倒,sonar的plugin是gradle官方自帶的,居然也能not found!gradle --version 看了一下自己當(dāng)前的版本: Gradle 1.0-milestone-1。印象中是最近才更新的,跑gradle官網(wǎng)看了一下,milestone-1 是3月份的版本,現(xiàn)在最新的已經(jīng)是1.0-milestone-3了。
猜想是1.0-milestone-1的bug,于是立即下載安裝,將本地gradle環(huán)境更新到1.0-milestone-3.再次運(yùn)行g(shù)radle sonar,上述sonar plugin not found的錯(cuò)誤消失。暈倒,這種無聊的bug也能在milestone 中出現(xiàn)。
繼續(xù),上面的bug消失之后,gradle sonar命令依然失敗,錯(cuò)誤消息顯示,http訪問地址http://192.168.0.40:9000/batch 時(shí)失敗。打開瀏覽器輸入這個(gè)地址,發(fā)現(xiàn)的確不能打開。http://192.168.0.40:9000是我安裝的sonar的地址,感覺是gradle試圖連接sonar服務(wù)器拿點(diǎn)什么東西的樣子,sonar服務(wù)器卻沒有這個(gè)東東。
剛剛從gradle版本錯(cuò)誤中被教育的我迅速反應(yīng)出來,最新版本的gradle,應(yīng)該支持的是新版本的sonar,我的sonar服務(wù)器可能版本太舊了。看了一下,發(fā)現(xiàn)果然,我本地的sonar版本是2.1,sonar官網(wǎng)已經(jīng)更新到2.7! 立即下載重新安裝sonar2.7版本,再次嘗試gradle sonar命令,一切正常,gradle順利完成和sonar的集成!
看來保持與時(shí)俱進(jìn),及時(shí)更新到新版本還是有必要的。