代碼質量管理 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


分享到:


相關文章: