1.SonarQube
是一個用於管理代碼質量的開放平台,可以快速的定位代碼中潛在的或者明顯的錯誤。目前支持java
,C#
,C/C++
,Python
,PL/SQL
,Cobol
,JavaScrip
,Groovy
等二十幾種編程語言的代碼質量管理與檢測
2.7.9.3是一個長期支持版本,數據庫不再支持MySQL,
# 環境 CentOS 7 JDK 11 PostgreSQL 11
3.安裝JDK11,yum安裝
# 查找軟件包 [root@sonarqube ]# yum list |grep java-11 java-11-openjdk.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-demo.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-demo.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-devel.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-devel.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-headless.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-headless.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-javadoc.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-javadoc.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-javadoc-zip.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-javadoc-zip.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-jmods.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-jmods.x86_64 1:11.0.7.10-4.el7_8 updates java-11-openjdk-src.i686 1:11.0.7.10-4.el7_8 updates java-11-openjdk-src.x86_64 1:11.0.7.10-4.el7_8 updates pljava-11.x86_64 1.5.2-2.rhel7 pgdg11 # 安裝JDK11 [root@sonarqube l]# yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64 java-11-openjdk-headless.x86_64 # 驗證 [root@sonarqube ]# java -version openjdk version "11.0.7" 2020-04-14 LTS OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)
4.安裝PostgreSQL
數據庫
# 安裝存儲庫包 wget https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-42.0-11.noarch.rpm # 安裝客戶端 yum install postgresql11 # 安裝服務器端 yum install postgresql11-server # 初始數據庫並自啟動 /usr/pgsql-11/bin/postgresql-11-setup initdb systemctl enable postgresql-11 systemctl start postgresql-11 # 開啟遠程訪問 vim /var/lib/pgsql/11/data/postgresql.conf listen_addresses='*' # 信任遠程連接,修改如下內容,信任指定服務器連接,ident修改為MD5 vim /var/lib/pgsql/11/data/pg_hba.conf # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 10.1.8.0/24 md5
5.配置postgresql
安裝完后會自動創建postgres用戶 su - postgres 切換進去 psql 進入命令行模式 create database sonar; 創建sonar數據庫 create user sonar; 創建sonar用戶 atler user sonar with password 'postgres'; 設置sonar用戶密碼(否則會導致連不上數據庫) alter role sonar createdb; alter role sonar superuser; alter role sonar createrole; 給sonar授權 alter database sonar owner to sonar; 更改sonar數據庫擁有者(這一步是必須的,否則會sonarqube會連接失敗) # 查看數據庫 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | sonar | sonar | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) # 查看用戶 postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} sonar | Superuser, Create role, Create DB | {} # 重啟數據庫 systemctl start postgresql-11
6.配置下載安裝sonarqube
cd /usr/local/src wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.3.zip unzip sonarqube-7.9.3.zip -d /usr/local ln -sv /usr/local/sonarqube-7.9.3 /usr/local/sonarqube # 配置sonar vim /usr/local/sonarqube/conf/sonar.properties sonar.jdbc.username=sonar sonar.jdbc.password=postgres ...... #sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema sonar.jdbc.url=jdbc:postgresql://localhost/sonar
7.sonar需要非root啟動,不然會報錯,且安裝目錄需要sonar啟動
# 建立用戶 useradd sonar # 授權文件 chown -R sonar.sonar /usr/local/sonarqube-7.9.3 chown -R sonar.sonar /usr/local/sonarqube # 啟動 su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start" # 停止 su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh stop" # 重啟 su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart"
8.訪問:ip:9000