• 代码质量管理 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
  • 相关阅读:
    仅当使用了列的列表并且 IDENTITY_INSERT 为 ON 时,才能为表'SpeType'中的标识列指定显式值
    SQL Server 创建作业系列问题
    常用WebService收集
    SQL Server中调用WebService的实例
    本地时间与格林威治时间相互转换
    $route和$router的区别?
    超详细的Canal入门,看这篇就够了!
    linux 安装redis 完整步骤
    什么是JSON
    The expression 'list' evaluated to a null value
  • 原文地址:https://www.cnblogs.com/daodaotest/p/12554750.html
Copyright © 2020-2023  润新知