欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决gradle与sonar集成过程中的版本问题

程序员文章站 2022-06-04 14:02:40
...
    初学gradle,一切都还在摸索的过程中。今天刚刚试图将之前基于ant + ivy的一个小项目转移到gradle下,结果在和sonar集成时出现问题。

    gradle中支持sonar的方式很简单,gradle提供了一个sonar的plugin,简单的在build.gradle中配置一下就好了:

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的集成!

    看来保持与时俱进,及时更新到新版本还是有必要的。