解決gradle與sonar集成過程中的版本問題
初學gradle,一切都還在摸索的過程中。今天剛剛試圖將之前基于ant + ivy的一個小項目轉移到gradle下,結果在和sonar集成時出現問題。
gradle中支持sonar的方式很簡單,gradle提供了一個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"
}
結果非常意外失敗了!一個無恥的失敗: Plugin with id 'sonar' not found !
很是暈倒,sonar的plugin是gradle官方自帶的,居然也能not found!gradle --version 看了一下自己當前的版本: Gradle 1.0-milestone-1。印象中是最近才更新的,跑gradle官網看了一下,milestone-1 是3月份的版本,現在最新的已經是1.0-milestone-3了。
猜想是1.0-milestone-1的bug,于是立即下載安裝,將本地gradle環境更新到1.0-milestone-3.再次運行gradle sonar,上述sonar plugin not found的錯誤消失。暈倒,這種無聊的bug也能在milestone 中出現。
繼續,上面的bug消失之后,gradle sonar命令依然失敗,錯誤消息顯示,http訪問地址http://192.168.0.40:9000/batch 時失敗。打開瀏覽器輸入這個地址,發現的確不能打開。http://192.168.0.40:9000是我安裝的sonar的地址,感覺是gradle試圖連接sonar服務器拿點什么東西的樣子,sonar服務器卻沒有這個東東。
剛剛從gradle版本錯誤中被教育的我迅速反應出來,最新版本的gradle,應該支持的是新版本的sonar,我的sonar服務器可能版本太舊了。看了一下,發現果然,我本地的sonar版本是2.1,sonar官網已經更新到2.7! 立即下載重新安裝sonar2.7版本,再次嘗試gradle sonar命令,一切正常,gradle順利完成和sonar的集成!
看來保持與時俱進,及時更新到新版本還是有必要的。
posted on 2011-05-15 13:12 sky ao 閱讀(5309) 評論(0) 編輯 收藏 所屬分類: project manager