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