• SonarQube:代码静态检查


    一、介绍

    SonarQube是一个用于代码质量管理的开源平台,用于管理源代码的质量通过插件形式; 可支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测;SonarQube官网:https://www.sonarqube.org/

    Sonar是从七个维度检测代码质量,而作为开发人员至少需要处理前5中代码质量问题。
    1、不遵循代码标准
    sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具规范代码编写
    2、潜在的缺陷
    sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具检测出潜在的缺陷
    3、糟糕的复杂度分布
    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
    4、重复
    显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示源码中重复严重的地方
    5、注释不足或者过多
    没有注释将使代码可读性变差,特别是当不可避免出现人员变动时,程序的可读性大幅度下降,而过多的注释又会使得开发人员将奖励过多的花费在阅读注释上,亦违背初衷
    6、缺乏单元测试
    sonar可以很方便地统计并展示单元测试覆盖率
    7、糟糕的设计
    通过sonar可以找出循环,展示包与包、类与类之间相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况,检测耦合。

    二、安装配置

    2.1 准备工作

    1、LINUX环境已配置好JDK;

    2、已安装mysql;

    3、sonarqube下载地址:https://www.sonarqube.org/downloads/

    2.2 安装配置

    2.2.1 将下载后的包上传到linux服务器;

    2.2.2 解压到/usr/local/目录下并改名;

    unzip sonarqube-7.1.zip -d /usr/local/
    mv sonarqube-7.1 sonar
    

    2.2.3 新建用户并赋予文件权限

    useradd sonar
    chown -R sonar /usr/local/sonar/
    

    2.2.4 使用root登陆MySQL,执行以下命令创建sonar数据库及用户授权等:

    CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
    CREATE USER 'sonar' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
    GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
    FLUSH PRIVILEGES;
    

    2.2.5 切换到sonar目录,修改sonar.properties配置文件;

    cd /usr/local/sonar
    vi conf/sonar.properties
    

    2.2.6 切换到普通用户,启动sonar(此处必须使用普通用户启动,否则es启动会报错)

    su sonar
    cd /usr/local/sonar/bin/linux-x86-64/
    ./sonar.sh start|tail -f ../../logs/sonar.log

    PS:排错思路---可以先跟着sonar.log日志,如果报了es错误,可以去查看es.log;如果报了web错误,那么就是查看web.log。

    坑:若不小心使用了root启动,程序会报错;需删除sonar目录下的temp文件夹;再切换回普通用户启动

    2.2.7 访问sonar: http://ip:port,默认用户名密码均为admin;

    2.2.8 中文插件安装,安装后重启即显示中文界面;

  • 相关阅读:
    docker usage (2)
    Linux command
    Postgresql 教程
    visual env VS conda environment of python
    Django教程(1)
    发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案(转载http://daydayup1989.iteye.com/blog/784831)
    如何保留小数点后一位
    (四)详解android:scaleType属性
    (三)android布局基础及范例:人人android九宫格布局(转载http://blog.csdn.net/jiabinjlu/article/details/6921008)
    (二)android中在xml文件中使用View在某个控件的上方画一条线;android:listSelector的属性说明;android:visibility="gone"
  • 原文地址:https://www.cnblogs.com/cocc/p/12365803.html
Copyright © 2020-2023  润新知