天下風雲出我輩
一入江湖歲月催

SonarQube 代码质量检查

简介:

SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞。它可以与现有的工作流程集成,以实现跨项目分支和请求请求的连续代码检查。

环境要求

系统:Centos7+ 64位

sonarqube版本: 8.3  
#jdk版本要求
Oracle JRE 11或OpenJDK 11

#生产硬件要求
8核16G SSD固态硬盘 高I/O

#postgresql版本
9.3–9.6 ~ 12  UTF-8字符集

安装postgresql


#install
yum install -y  https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

yum install -y postgresql12  postgresql12-server postgresql12-contrib

#初始化启动服务
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12

#登录postgresql并设置密码
su - postgres

-bash-4.2$ psql

CREATE DATABASE sonar;
CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
ALTER DATABASE sonar OWNER TO sonar;

postgres=# \q
-bash-4.2$ exit

#修改配置文件使用账户密码登录
vim /var/lib/pgsql/12/data/pg_hba.conf
将ident修改为trust允许使用账户密码登录
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

#重启服务
systemctl restart postgresql-12

安装SonarQube

#download
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.3.1.34397.zip

unzip sonarqube-8.3.1.34397.zip

mv sonarqube-8.3.1.34397 sonarqube-8.3

#修改配置文件
vim /opt/sonarqube-8.3/conf/sonar.properties

#配置参数
sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:postgresql://localhost/sonar

sonar.jdbc.maxActive=60

sonar.jdbc.maxIdle=5

sonar.jdbc.minIdle=2

sonar.jdbc.maxWait=5000

sonar.jdbc.minEvictableIdleTimeMillis=600000

sonar.jdbc.timeBetweenEvictionRunsMillis=30000

sonar.jdbc.removeAbandoned=true

sonar.jdbc.removeAbandonedTimeout=60

#注意
配置Elasticsearch存储路径:
默认情况下,Elasticsearch数据存储在$ SONARQUBE-HOME / data中,但不建议将其用于生产实例。相反,您应该将此数据存储在其他位置,
最好是在具有快速I / O的专用卷中。除了保持可接受的性能外,这样做还可以简化SonarQube的升级。

编辑$ SONARQUBE-HOME / conf / sonar.properties以配置以下设置:

sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
用于启动SonarQube的用户必须具有对这些目录的读写权限。

启动Web服务器
默认端口为“ 9000”,上下文路径为“ /”。这些值可以在$ SONARQUBE-HOME / conf / sonar.properties中进行更改:

sonar.web.host=192.0.0.1
sonar.web.port=80
sonar.web.context=/sonarqube

安装sonar-scanner

#install
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip

unzip sonar-scanner-cli-4.2.0.1873-linux.zip

mv sonar-scanner-cli-4.2.0.1873-linux.zip sonar-scanner-4.2

#修改配置文件
vim /opt/sonar-scanner-4.2/conf/sonar-scanner.properties

#默认配置

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

创建用户和赋权与配置变量

useradd sonar  -s /sbin/nologin

chown -R sonar:sonar sonarqube-8.3
chown -R sonar:sonar sonar-scanner-4.2

chmod -R 755 /opt/sonarqube-8.3
chmod -R 755 /opt/sonar-scanner-4.2

#配置环境变量

#vim /etc/profile

export SONAR_HOME=/opt/sonarqube-8.3
export SONAR_RUNNER_HOME=/opt/sonar-scanner-4.2
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
export PATH=$PATH:$SONAR_HOME/bin

source /etc/profile

修改最大描述符和线程数

#临时生效
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

#永久生效
vim /etc/sysctl.d/99-sonarqube.conf
vm.max_map_count=262144
fs.file-max=65536

sysctl -p

启动服务

手动控制

su - sonar
/opt/sonarqube-8.3/bin/linux-x86-64/sonar.sh start
/opt/sonarqube-8.3/bin/linux-x86-64/sonar.sh stop

使用systemctl控制

#配置服务
vim /usr/lib/systemd/system/sonar.service

[Unit]
Description=SonarQube Server
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/sonarqube-8.3/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube-8.3/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
User=sonar
Group=sonar
Restart=on-failure

[Install]
WantedBy=multi-user.target

#重新加载
systemctl daemon-reload
systemctl start sonar.service
systemctl enable sonar.service

访问web界面


http://ip:9000

#设置用户界面为中文
Administrator >> marketplace >> 

搜索chinese插件:SonarQube Chinese Pack 并安装
赞(2) 打赏
未经允许不得转载:Anonym0x1 » SonarQube 代码质量检查

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏