sonar使用

转载https://blog.csdn.net/qq_42207325/article/details/100998453

Sonar-Scanner环境配置参考https://www.jianshu.com/p/e384595d0b14

不要软连接,直接vi etc/profile加入

中文插件https://github.com/SonarQubeCommunity/sonar-l10n-zh

https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.25

最近项目编译机换系统,需要重新部署下SonarQube以及备份老机器的数据,因为之前是前人部署的,这边自己第一次接触,还没有文档记录,于是重新踩了一遍又一遍的坑,想着自己文档也没少写,但一直没发出来过,正好借此机会,写写博客,开个好头~边记录边吐槽下工作以后遇到的各种问题吧。

前置条件:JDK+SQL

这里想说下,官方的介绍说明还是要好好看看的,不同版本的sonarqube所需要的前置条件和数据库支持也不同,比如7.9.1新版本已经不支持MySQL了,并且JDK最低要求11。(吐槽:这不好好了解真的是坑的不行,各种起服起不来)
sonarQube7.9.1 JDK11 不支持MySQL
sonarQube7.5 JDK8 支持MySQL等
官方介绍戳这里
sonar使用_第1张图片
关注下这些就OK,看好对应的JDK版本和支持的数据库,选个自己喜欢的吧。
下面拿sonarQube7.5+JDK1.8.0_221+postgreSQL举例

JDK

JDK1.8.0_221
JDK11.0.1
sonar使用_第2张图片
直接点没准会需要登录oracle,这里右键直接可以拽到资源URL下载(???好想吐槽下这个地方 ?)

下载好拽到linux系统下面,解压即可,这里我放在了/usr/local/jdk/下面(放哪无所谓啦,环境变量配置对路径就好了,建议大家也把自己装的软件统一放在某个地方,方便管理~)

tar zxvf jdk-8u221-linux-x64.tar.gz 解压即可
vim /etc/profile 配置环境变量,此文件末尾加上下面三行

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_221 
                           #这里看你解压的是什么版本了,11的话应该是叫jdk-11.0.1,注意路径是你自己存放的位置哦
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 1
  • 2
  • 3
  • 4

source /etc/profilewq保存退出后,用source命令使环境变量生效
java -version 检查下
在这里插入图片描述
OK,JDK弄好了,这里的坑可能就是配环境变量的路径别搞错了,你是啥版本目录叫啥名就填啥。当然还会有坑后面说

PostgreSQL

数据库这里我用的是PostgresSQL,主要是因为以前老机器就是这个,而且最新版本以及不支持MySQL了,MySQL就没弄

我只安装过两个系统 CentOS7 和 Debian8

Debian 8
apt-get install postgresql postgresql-client (嗯一键安装即可 ?)

CentOS7

yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum install postgresql95-server postgresql95-contrib
//这个具体记不清了,我copy过来的哈哈,反正也是一键安装吧
  • 1
  • 2
  • 3

主要说配置文件跟配置数据库吧

配置文件

首先需要改pg_hba.conf这个配置文件,不知道为啥我Debian装完后路径跟网上的不一样
索性就自己用locate pg_hba.conf搜一下吧,然后vim pg_hba.conf进去sonar使用_第3张图片
数据库
安装完后会自动创建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会连接失败)

到这里数据库就搞完了!检查一下,结果应该是这样的, psql进入命令行模式 \l查看数据库 \du 查看用户
sonar使用_第4张图片

SonarQube

官方文档:https://docs.sonarqube.org/7.5/
官方下载:https://www.sonarqube.org/downloads/

下载
老版本可以到这里找,这里我下载的是sonarQube7.5社区版
sonar使用_第5张图片
在这里插入图片描述
下载好丢到你的linux机器上,到/usr/local/下面解压 unzip sonarqube-7.5.zip

解压好之后其实就能起了,但是起服一定要注意三个坑!!!(这几个当时坑的我差点一口老血喷出来 ?)

  1. 不能用root起!
  2. 切换用户必须 su - username !如果你这样做 su username 在这个用户下JDK可能会不生效!(起码Debian是这样)
  3. 切换好用户千万别忘记给这个用户授权你的sonarQube根目录
  4. 更改一些系统配置

更改系统配置 (这段是我ctrl+c ctrl+v搬过来的 ?)
根据需要执行下述命令以使内核参数符合sonar安装需求
#可以使用以下命令查看这些值:

sysctl vm.max_map_count 
sysctl fs.file-max 
ulimit -n 
  • 1
  • 2
  • 3

#可以通过以root身份运行以下命令来为当前会话动态设置它们:

sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
  • 1
  • 2
  • 3

#为了更永久设置这些值,则必须修改/etc/sysctl.d/99-sonarqube.conf(或/etc/sysctl.conf文件)#文件末尾添加下述两行

vi /etc/sysctl.conf
vm.max_map_count=262144
fs.file-max=65536
  • 1
  • 2
  • 3

#在/etc/profile文件末尾添加ulimit -n 65536

vi /etc/profile
ulimit -n 65536#保存后运行#source /etc/profile 使其生效
source /etc/profile
  • 1
  • 2
  • 3

创建sonar用户

useradd sonar
passwd sonar
  • 1
  • 2

密码就123456吧

目录授权
chown -R sonar:sonar /usr/local/sonarqube-7.5/ (路径填你自己的哦)

起服
su - sonar 别忘了切用户

这里插一句 ,Debian系统切换用户后好像默认用户的shell不是bash shell,会导致方向键TAB键之类的失灵,如果遇到这种情况,切回root,使用这个命令usermod -s /usr/sbin/nologin username 将普通用户的shell改成bash即可

cd /usr/local/sonarQube7.5/bin/ 进入bin目录
sh sonar.sh start 或 bash sonar.sh start (Debian 下是bash shell 所以用bash)

到这里正常情况就能起来了,但是还没连数据库。

设置sonarQube配置文件 连接数据库
vim /usr/local/sonarQube7.5/conf/sonar.properties
sonar使用_第6张图片
sonar使用_第7张图片
配置自己机器的IP跟端口,保存退出即可
cd /usr/local/sonarQube7.5/bin/ 进入bin目录
sh sonar.sh restart 或 bash sonar.sh restart 重启即可

至此,sonarQube+PostgreSQL就搭建好了

Sonar-Scanner扫描器安装及使用方法

光弄SonarQube是没法扫描项目的,所以还需要装一下sonar-scanner

官方下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

丢到/usr/local/sonar-scanner/下面解压
unzip sonar-scanner-cli-4.0.0.1744-linux.zip
cd sonar-scanner-4.0.0.1744-linux
vim conf/sonar-scanner.properties 改下配置
sonar使用_第8张图片
保存退出后,创建软连接,将sonar-scanner改为全局即可使用
ln -s /usr/local/sonar-scaner/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner /usr/bin/sonar-scanner

使用方法
在项目的根目录下创建sonar-scanner的配置文件
vim sonar-project.properties

sonar.projectKey=test-project	  						
sonar.projectName=test-project					#填你自己的项目名称
sonar.projectVersion=1.0							
sonar.sources=./								#扫描资源的路径
sonar.language=c++								#指定语言
sonar.host.url=http://localhost:9000			#填你自己的sonarqube地址
sonar.sourceEncoding=UTF-8				
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

保存退出
sonar-scanner 终端输入命令进行扫描 进入web页面查看结果
在这里插入图片描述

到这里sonarQube+PostgreSQL+sonar-scanner就全配好了,后续还会分享一下怎样集成一些cpp的插件

Thanks.

你可能感兴趣的:(sonar)