zoukankan      html  css  js  c++  java
  • SonarQube学习笔记

    一、简介

    官方介绍SonarQube是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的连续代码检查。官方地址其中包含web、数据库(7.9以后不支持mysql了)、插件。

    刚接触SonarQube的时候会被很多名词搞得晕头转向的,SonarQube、SonarQube Scanner、SonarQube runner等等。先大致说一下,之后随着安装就明白了。
    SonarQube是server接受来自扫描器SonarQube Scanner的分析,然后将数据存入数据库,再在web端展示。而扫描器SonarQube Scanner里包含有很多插件,如:

    这里其他的都挺好理解,有个SonarQube Scanner官方文档是介绍

    意思是没有特定特定的扫描器比如gradle或maven之类的使用的通用扫描器。(SonarQube runner我理解应该是插件的一种,和gradle或maven属一个类型,反正在8.4的版本中看不到这个词了,可能是比较早期的版本有吧。)

    二、安装

    (一)服务器安装

    因为7.9以后就不支持mysql数据库了,我们这里选择了7.6版本。
    7.6下载地址

    1、装备工作

    创建sonar用户,将程序拷贝到家目录解压,并给予权限。

    useradd sonar
    chown sonar.sonar sonarqube-7.6.zip
    mv sonarqube-7.6.zip /home/sonar
    su - sonar
    unzip sonarqube-7.6.zip
    

    • bin目录存放了各个环境的启动脚本
    • conf目录存放着sonarqube的配置文件
    • logs目录存放着启动和运行时的日志文件
    • elasticsearch安装包带的ES不用单独装

    3、安装mysql、jdk

    查看支持版本

    1、安装mysqlmysql安装文档
    jdk就不说了,自带的版本是1.8的也能用

    2、创建用户

    在mysql添加了一个 **sonarqube **的用户,并且创建了一个数据库叫 sonar,且将数据库的读写执行权限赋给 sonarqube用户,用于在站点初始化以及后续存储设置数据时对数据库进行修改。

    create database sonarqube
    grant all on sonarqube.* to sonarqube@'%' identified by 'Mysql@password.123';
    GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP ON sonarqube.* TO 'sonarqube'@'%';
    flush privileges;
    

    MySQL数据库的共享锁定策略可能会影响SonarQube运行时。确保将is_read_committed_snapshot_on其设置为true防止SonarQube在重负载下面临潜在的死锁。
    ALTER DATABASE YourSonarQubeDatabase SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

    4、配置sonar

    1、sonar.properties

    cd conf
    vim sonar.properties
    添加
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  
    把logcalhost改成IP
    sonar.jdbc.username = sonarqube
    sonar.jdbc.password = yourpassword       这里改成你自己的密码,注意复杂度
    
    

    2.wrapper.conf
    wrapper.conf这个文件可以设置使用的java的路径,我这里用默认的java就不用改这个文件了。

    3、es配置
    配置要求

    • vm.max_map_count 大于或等于262144
    • fs.file-max 大于或等于65536
    • 运行SonarQube的用户可以打开至少65536个文件描述符
    • 运行SonarQube的用户可以打开至少2048个线程
    使用root用户
    vim /etc/sysctl.conf
    vm.max_map_count=262144
    sysctl -p
    
    vim /etc/security/limits.conf
    sonarqube   -   nofile   65536
    sonarqube   -   nproc    2048
    
    切换sonar用户
    cd /home/sonar/sonarqube-7.6/elasticsearch/config
    vim jvm.options
    修改jvm内存,一般情况设置物理内存的三分之一就行
    

    5、启动

    cd sonarqube-7.6/bin/linux-x86-64
    ./sonar.sh start
    ./sonar.sh status
    

    服务启动成功,默认端口是9000,如果启动没成功,到logs下边看看,不是es就是web.log

    (二)docker部署

    docker安装可以测试集群,集群的部署需要至少5台。
    待补充。。。

    三、安装插件

    安装汉化插件
    配置--应用市场--chinese--重启sonar

    --------------------------------------------------------- 恐惧是因为努力的还不够,加油 ~~---------------------------------------------
  • 相关阅读:
    Robot Framework-资源文件的使用方法(7)
    Robot Framework-用户关键字的使用方法(6)
    robotframework 新建UI自动化测试用例实例一(2)
    robotframework--登录接口,post传递多个参数、及获取content中指定属性的值(5)
    robotframework基础知识(2)
    win7如何打开防火墙某个端口的tcp连接
    外观模式
    享元模式
    代理模式
    模板模式
  • 原文地址:https://www.cnblogs.com/zhaobowen/p/13341272.html
Copyright © 2011-2022 走看看