1. 简介
SonarQube
是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java
,C#
,C/C++
,Python
,PL/SQL
,Cobol
,JavaScrip
,Groovy
等二十几种编程语言的代码质量管理与检测。
2. 环境
Centos
7
JDK
11
PostgreSQL 10
3. 创建用户
# 创建sonar系统用户
groupadd sonar
useradd sonar -g sonar
4. 优化参数
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -u 4096 sonar
ulimit -n 65536 sonar
5. 安装PostgreSQL10
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql10
yum install postgresql10-server
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10
创建数据库和用户,并把数据库分配给该用户,并授予权限
# 登录postsql
su - postgres
psql
# 创建数据库和用户,并把数据库分配给该用户,并授予权限
create database sonar;
create user sonar;
alter user sonar with password 'sonar';
alter role sonar createdb;
alter role sonar superuser;
alter role sonar createrole;
alter database sonar owner to sonar;
# 退出
\q
exit
修改配置文件/var/lib/pgsql/10/data/pg_hba.conf
,将ident
全部改为md5
改完重启postsql
systemctl restart postgresql-10
6. 安装SonarQube
版本是
sonarqube-7.9.3
1. 下载SonarQube
解压sonar
,并设置权限
yum install unzip
unzip sonarqube-7.9.3.zip
mkdir /opt/sonar
mv sonarqube-7.9.3/* /opt/sonar/
groupadd sonar
useradd sonar -g sonar
chown -R sonar.sonar /opt/sonar/
3. 修改配置文件
vim /opt/sonar/conf/sonar.properties
修改数据库相关的配置
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
注意:
sonar
默认监听9000端口,如果9000端口被占用,需要更改。
4. 启动SonarQube
# 启动
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh start
# 查看状态
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh status
# 停止
su sonar /opt/sonar/bin/linux-x86-64/sonar.sh stop
# 查看日志
tail -f /opt/sonar/logs/sonar.log
5. 常见错误
app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
这个报错一般是数据库连接问题,请查看sonar/logs/web.log
app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
这个报错一般是es
不能使用root
启动原因导致
Caused by: org.postgresql.util.PSQLException: ERROR: no schema has been selected to create in
是因为没权限,要注意授权
java.lang.IllegalStateException: Fail to connect to database
无法连接数据库,注意IP
地址