SonarQube

简介

SonarQube 是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检测。

环境

CentOS 7
JDK 11
Postgresql 9.6

 

创建用户

groupadd sonarqube
useradd -g sonarqube sonarqube

 

优化参数

ulimit -n  65535
sysctl -w vm.max_map_count=262144

 

安装postgresql

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql96-server
​
/usr/pgsql-9.6/bin/postgresql96-setup initdb
​
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
# psql -V
psql (PostgreSQL) 9.6.18

 

创建数据库和用户,并把数据库分配给该用户,并授予权限

su - postgres
psql -U postgres
​
create database sonarqube;
create user sonarqube;
alter user sonarqube with passwor 'sonarqube';
alter role sonarqube createdb;
alter role sonarqube superuser;
alter role sonarqube createrole;
alter database sonarqube owner to sonarqube;
\q
exit

 

修改配置文件/var/lib/pgsql/10/data/pg_hba.conf

/var/lib/pgsql/9.6/data

local   all             all                                     trust
host    all             all             0.0.0.0/0               trust

 

安装SonarQube

版本:sonarqube-7.9.3
unzip sonarqube-7.9.3.zip
mv sonarqube-7.9.3 /data/sonarqube
chown -R sonarqube.sonarqube /data/sonarqube

 

修改配置文件

vim /data/sonarqube/conf/sonar.properties
​
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

 

启动sonarqube

启动
su sonarqube /data/sonarqube/bin/linux-x86-64/sonar.sh start
查看状态
su sonarqube /data/sonarqube/bin/linux-x86-64/sonar.sh status
停止
su sonarqube /data/sonarqube/bin/linux-x86-64/sonar.sh stop
查看日志

/data/sonarqube/logs

 

登入

 

汉化

重启sonarqube

 

Jenkins集成SonarQube

安装插件

管理Jenkins->插件管理

SonarQube Scanner

 

生成SonarQube Token

创建项目->生成Token

保存生成的Token

 

添加jenkins凭证

 

配置jenkins 的sonarqube server

管理Jenkins -> 系统设置

配置Sonarqube scanner

Jenkins 构建Job时代码扫描

Post Steps配置项中点击:Add post-build step,然后选择:Execute SonarQube Scanner

这里我们只需要在Analysis properties中配置sonar扫描的参数即可

sonar.projectKey=com.pinbei.pb-dubbo-user.pb-user-core
sonar.projectName=pb-user-core
sonar.projectVersion=1.0
sonar.sources=pb-dubbo-parent/pb-dubbo-user/pb-user-core/src
sonar.java.binaries=pb-dubbo-parent/pb-dubbo-user/pb-user-core/target/classes
sonar.language=java

 

参数项说明
sonar.projectKey 项目Key,需要唯一,建议使用GroupId+ArtifactId
sonar.projectName 项目名称,跟ArtifactId保持一致即可
sonar.projectVersion 项目版本,跟pom.xml保持一致即可
sonar.sources 源码目录,Java项目默认就是src,如果项目有多个module,那就需要配置为{moduleDirectory}/src
sonar.java.binaries 编译产出的classes目录,如果项目有多个module,那就需要配置为{moduleDirectory}/target/classes

构建和扫描

posted @ 2020-08-28 09:25  Bigberg  阅读(581)  评论(0编辑  收藏  举报