Maven SonarQube CodeReview

介绍

  1. SonarQube
    * 官网: https://www.sonarqube.org/
    * 介绍:(曾用名Sonar(声纳)是一个开源的代码质量管理系统。 
  1. SonarQube 特征
    * 支持超过25种编程语言:Java、C/C  、C#、PHP、Flex、Groovy、JavaScript、Python、PL/SQL、COBOL等。(不过有些是商业软件插件)
    * 可以在Android开发中使用
    * 提供重复代码、编码标准、单元测试、代码覆盖率、代码复杂度、潜在Bug、注释和软件设计报告
    * 提供了指标历史记录、计划图(“时间机器”)和微分查看
    * 提供了完全自动化的分析:与Maven、Ant、Gradle和持续集成工具(Atlassian Bamboo、Jenkins、Hudson等)* 与Eclipse开发环境集成
    * 与JIRA、Mantis、LDAP、Fortify等外部工具集
    * 支持扩展插件
    * 利用SQALE计算技术债务
    * 支持Tomcat。不过计划从SonarQube 4.1起终止对Tomcat的支持。

安装

  1. 依然使用docker image 部署
  2. 如果没有安装docker 请参考这篇博客
  3. 启动
        docker run -d --name sonarqube \
        -p 9000:9000 -p 9092:9092 \
        -e SONARQUBE_JDBC_USERNAME=sonar \
        -e SONARQUBE_JDBC_PASSWORD=sonar \
        -e SONARQUBE_JDBC_URL=jdbc:mysql://192.168.199.131:3306/tryspread?useUnicode=true&characterEncoding=utf-8 \
        sonarqube
  1. 访问。http://ip:9000
    ![](https://img-blog.csdnimg.cn/20191009153338527.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yQ2hhbmdDaGFuZw==,size_16,color_FFFFFF,t_70)

项目中使用

使用方式1

  1. maven setting.xml 设置
        
2.  pom添加插件
        <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.3.0.603</version>
        </plugin>
  1. 使用。执行 mvn sonar:sonar 即可

使用方式2

  1. pom添加插件
           <plugin>
                   <groupId>org.sonarsource.scanner.maven</groupId>
                   <artifactId>sonar-maven-plugin</artifactId>
                   <version>3.3.0.603</version>
         </plugin>
2. 使用默认的帐号登录之后,可以:
    * 生成一个代替帐号的`token`
    * 修改一个`admin`的密码
    * 可以在`Administration`=>`System`=>`Update Center`,安装中文插件和其它要分析的语言的插件
  1. 执行
        mvn clean package sonar:sonar \
          -Dsonar.host.url=http://localhost:9000 \  //此处是sonar控制台访问地址
          -Dsonar.login=token  //token 是登陆到sonar后自己设置的token 
        或者
        mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package \ 
        -Dmaven.test.failure.ignore=true \
         deploy \ 
         sonar:sonar -Dsonar.host.url=http://192.168.199.131:9000 -Dsonar.login=2feb1b65a2224c9cb6744f35a7e45988e3443af6
 

观察


    ![](https://img-blog.csdnimg.cn/20191009153339119.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01yQ2hhbmdDaGFuZw==,size_16,color_FFFFFF,t_70)

实时code review


    * 插件:SonarLint
    * 官网:http://www.sonarlint.org/intellij/
  • 关于SonarQube常用设置,下个博客再讲。
    如感觉文章对你有所帮助,可以关注微信公众号鼓励一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sonar简介 Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测 sonarQube能带来什么? Developers' Seven Deadly Sins 1.糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试 2.重复 显然程序中包含大量复制粘贴的代码是质量低下的 sonar可以展示源码中重复严重的地方 3.缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率 4.没有代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写 5.没有足够的或者过多的注释 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷 6.潜在的bug sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug 7.糟糕的设计(原文Spaghetti Design,意大利面式设计) 通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系 可以检测自定义的架构规则 通过sonar可以管理第三方的jar包 可以利用LCOM4检测单个任务规则的应用情况 检测耦合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值