zoukankan      html  css  js  c++  java
  • 代码质量管理 SonarQube 系列之 安装

    简介

    SonarQube 是一个开源的代码质量管理系统。

    功能介绍:

    • 15种语言的静态代码分析
      Java、JavaScript、C#、TypeScript、Kotlin、Ruby、Go、Scala、Flex、Python、PHP、HTML、CSS、XML和VB.NET
    • 检测代码 bugs 和 漏洞
    • 检查安全热点
    • 跟踪代码坏味道,并修复技术债务
    • 代码质量度量及历史变更记录
    • CI/CD 集成
    • 可扩展,社区有超过 60 多个插件

    支持平台

    Java

    SonarQube 仅支持 JVM 11,SonarQube scanners 支持 JVM 8 或 11。

    Java Server Scanners
    Oracle JRE 11 11
    不支持 8 8
    OpenJDK 11 11
    不支持 8 8

    Database

    注意:SonarQube 7.9+ 已经不在支持 MySQL。

    Database version
    PostgreSQL 12
    11
    10
    9.3-9.6
    字符集必须设置为 UTF-8
    Microsoft SQL Server 2017 (MSSQL Server 14.0)
    2016 (MSSQL Server 13.0)
    2014 (MSSQL Server 12.0)
    Oracle 19C
    18C
    12C
    11G
    XE Editions
    字符集必须设置为 UTF-8 系列
    不支持驱动包 ojdbc14.jar
    建议使用最新的 Oracle JDBC 驱动程序
    仅支持 thin 模式,不支持 OCI

    Web Browser

    Browser Version
    Microsoft Internet Explorer IE 11
    Microsoft Edge Latest
    Mozilla Firefox Latest
    Google Chrome Latest
    Opera Not tested
    Safari Latest

    验证环境

    操作系统:macOS Catalina 版本 10.15.2

    SonarQube:8.2.0

    Oracle JDK:11

    postgreSQL:12.2

    安装 postgreSQL

    macOS

    # 下载 
    # 官方下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
    $ wget https://get.enterprisedb.com/postgresql/postgresql-12.2-1-osx.dmg
    
    # 双击安装即可
    
    # 验证
    $ ps -ef | grep postgres
    
    # 启动
    $ sudo -i -u postgres
    $ ./bin/pg_ctl -D /Library/PostgreSQL/12/data start
    
    # 停止
    $ ./bin/pg_ctl -D /Library/PostgreSQL/12/data stop
    

    linux(Red Hat family)

    # 安装 yum 源
    $ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
    # 安装客户端
    $ yum install -y postgresql12
    
    # 安装服务器端
    $ yum install -y postgresql12-server
    
    # 初始化数据库,并设置开机启动
    $ /usr/pgsql-12/bin/postgresql-12-setup initdb
    $ systemctl enable postgresql-12
    $ systemctl start postgresql-12
    
    # 验证
    $ systemctl status postgresql-12
    

    创建 sonar 数据库

    如下为 macOS 操作步骤,Linux 操作步骤一样。

    $ sudo -i -u postgres
    $ psql
    Password for user postgres:
    psql (12.2)
    Type "help" for help.
    
    # 创建数据库
    postgres=# CREATE DATABASE sonar;
    CREATE DATABASE
    
    # 创建 sonar 用户
    postgres=# CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
    CREATE ROLE
    
    # 设置权限
    postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
    GRANT
    
    # 修改 sonar 数据库所属者为 sonar
    postgres=# ALTER DATABASE sonar OWNER TO sonar;
    ALTER DATABASE
    
    # 查看数据库
    postgres=# l sonar
                                List of databases
     Name  | Owner | Encoding |   Collate   |    Ctype    | Access privileges
    -------+-------+----------+-------------+-------------+-------------------
     sonar | sonar | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/sonar        +
           |       |          |             |             | sonar=CTc/sonar
    (1 row)
    
    # 查看用户
    postgres=# du sonar
               List of roles
     Role name | Attributes | Member of
    -----------+------------+-----------
     sonar     |            | {}
    
    # 退出
    postgres=# q
    

    安装 SonarQube

    # 下载
    $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.2.0.32929.zip
    
    # 解压
    $ unzip sonarqube-8.2.0.32929.zip
    
    # 修改配置文件,设置数据库
    $ vi conf/sonar.properties
    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    sonar.jdbc.url=jdbc:postgresql://localhost/sonar
    
    # 启动
    $ ./macosx-universal-64/sonar.sh start
    

    访问 SonarQube

    启动成功后,通过 http://localhost:9000 进行访问。
    默认用户名/密码:admin / admin。

    下载中文插件

    在线安装中文插件,重启。

    注意: 离线安装只需要下载 jar 放到 extensions/plugins 目录下,重启即可。

    其他常用插件

    • Crowd
    • Bitbucket Authentication for SonarQube
    • Findbugs
    • Checkstyle
    • PMD
    • MyBatis Plugin for SonarQube
    • ShellCheck Analyzer
    • YAML Analyzer
  • 相关阅读:
    下午不想写代码了,写个shelve的模块使用(简单实用的小型数据库)。
    io,pickle,json,一把梭哈,把这三个模块都讲了。
    import 和 __import__的区别
    namedtuple工厂函数,创造一个像实例对象的元祖(感觉到了Python的奇妙与可爱之处)。
    写一下base64字节码转换工具。
    Python加密模块的hashlib,hmac模块介绍。
    简述Orderdict,defaultdcit,ChainMap以及MappingProxyType
    工作中碰到的小问题,如何对列表内的字典排序,以及operator.itemgetter介绍。
    最近在写一个虚拟币搬砖脚本,几条建议备注下。
    Python的re,正则表达式,希望这次比较能让我记住里面的80%以上。(未完成,待继续)
  • 原文地址:https://www.cnblogs.com/daodaotest/p/12554750.html
Copyright © 2011-2022 走看看