持续集成2-SonarQube

sonar是一个代码质量管理平台,根据规则对代码进行静态检查,对保证工程的代码质量很有帮助

  • sonar5.5是最后一个支持jdk7的版本,但是我这里使用4.5.7lts版本,因为4.5.7比5.5还要新一个月,毕竟是长期支持版
    sonar文档建议
  • sonar建议把mysql的innodb_buffer_pool_size设为最大,mysql推荐为物理内存的60%-70%,默认是128mb;query_cache_size最少15mb,所以修改mysql配置文件
innodb_buffer_pool_size=256M //作为自己学习用够了
query_cache_type=1 //默认为0关闭query_cache功能
query_cache_size=32M //设为32M

因为sonar进行代码检测的时候会一瞬间对数据库大量操作,所以需要优化一下数据库的配置

  • 修改conf/sonar.properties,下面那些配置本来就有,只是要把注释去掉或者改下value
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
# sonar.web.host=0.0.0.0 #默认就是全网都可以访问
# sonar.web.context= #默认为根目录,使用浏览器访问
# sonar.web.port=9000 #默认为9000端口,-1为禁用
# sonar.web.https.port=-1 #默认禁用https

最好是在mysql里单独建一个用户和库,我这里学习使用就没创建单独的用户,库要用utf8(utf8mb4),最好单独建个库,因为会创建很多表。

  • /usr/local/sonarqube-4.5.7/bin/macosx-universal-64/sonar.sh start启动sonar,sonar不推荐使用root启动。首次启动会创建一大堆表
  • 默认用户密码admin/admin
  • 在配置-更新中心-available plugins中安装插件。很多插件会显示Not compatible, requires SonarQube upgrade,这时需要点插件的homepage进入github页面,下载对应的版本源码自己打包。


    安装插件
  • sonar4.5.7使用汉化包chinese pack的1.8版本,在github里找到1.8的版本下载之后,mvn package获得jar包,放到sonarqube-4.5.7/extensions/plugins中,重启sonar服务就是汉化的了
  • 继续安装PMD2.5、Checkstyle2.4、Cobertura1.6.3,安装方法和上面一样,安完重启
  • 可以安装ide的sonar插件,不安也可以,最好是使用maven的sonar插件
  • 编辑maven的setting.xml,在profiles节点下增加一个profile节点:

    sonar
    
        true
    
    
        
        jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8
        root
        root
        
        http://127.0.0.1:9000
    

  • 执行mvn sonar:sonar --settings /Users/laifuzhi/.m2/settings-me.xml,这里指定了maven使用的配置文件
  • 工程的pom中指定了2.6版本的sonar-maven插件,2.7版本的有bug,在2.7.1中已经被修复了,高版本的插件需要jdk8,所以这里用了老版本2.6。相关说明可以看Stack Overflow

    org.codehaus.mojo
    sonar-maven-plugin
    2.6

  • 在质量配置中可以更改规则组,在rules中可以对规则组中的规则进行更改。质量配置中默认有两个规则组,默认使用sonar way规则组,findbugs规则组中的规则更多。


    肥肥小浣熊

你可能感兴趣的:(持续集成2-SonarQube)