代码质量管理 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。

代码质量管理 SonarQube 系列之 安装

Database

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

代码质量管理 SonarQube 系列之 安装

Web Browser

代码质量管理 SonarQube 系列之 安装

验证环境

操作系统:macOS Catalina 版本 10.15.2
SonarQube:8.2.0
Oracle JDK:11
postgreSQL:12.2

操作系统参数设置

SonarQube 使用 Elasticsearch 做全文搜索,所以需要设置如下:

<code># 实时设置
$ sysctl vm.max_map_count
$ sysctl fs.file-max
$ ulimit -n
$ ulimit -u

# 永久生效
$ echo "sonarqube - nofile 65536
sonarqube - nproc 4096" > /etc/security/limits.d/99-sonarqube.conf
/<code>

zip 方式安装

安装 postgreSQL

macOS

<code># 下载
# 官方下载地址: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
/<code>

linux(Red Hat family)

<code># 安装 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
/<code>

创建 sonar 数据库

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

<code>$ 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
/<code>

安装 SonarQube

<code># 下载
$ 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
/<code>

docker 安装

下载镜像

<code># 下载
$ docker pull postgres
$ docker pull sonarqube

# 查看镜像
$ docker images
/<code>

创建网络

<code>$ docker network create sonar-network

# 查看网络
$ docker inspect sonar-network
/<code>

启动 postgres

<code># 启动
$ docker run --name sonar-postgres -d \\
-e POSTGRES_USER=sonar \\
-e POSTGRES_PASSWORD=sonar \\
-p 5432:5432 \\
--net sonar-network \\
postgres

# 查看容器
$ docker ps

# 查看启动 log
$ docker logs -f postgres
/<code>

启动 sonarqube

<code># 启动
$ docker run --name sonarqube -d \\
-p 9000:9000 \\
-e SONARQUBE_JDBC_USERNAME=sonar \\
-e SONARQUBE_JDBC_PASSWORD=sonar \\
-e SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-postgres:5432/sonar \\
--net sonar-network \\
sonarqube

# 查看容器
$ docker ps

# 查看启动 log
$ docker logs -f sonarqube
/<code>

访问 SonarQube

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

代码质量管理 SonarQube 系列之 安装

下载中文插件

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

代码质量管理 SonarQube 系列之 安装


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

代码质量管理 SonarQube 系列之 安装

其他常用插件

  • Crowd
  • Bitbucket Authentication for SonarQube
  • Findbugs
  • Checkstyle
  • PMD
  • MyBatis Plugin for SonarQube
  • ShellCheck Analyzer
  • YAML Analyzer


分享到:


相關文章: