转载https://blog.csdn.net/qq_42207325/article/details/100998453
不要软连接,直接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以及备份老机器的数据,因为之前是前人部署的,这边自己第一次接触,还没有文档记录,于是重新踩了一遍又一遍的坑,想着自己文档也没少写,但一直没发出来过,正好借此机会,写写博客,开个好头~边记录边吐槽下工作以后遇到的各种问题吧。
这里想说下,官方的介绍说明还是要好好看看的,不同版本的sonarqube所需要的前置条件和数据库支持也不同,比如7.9.1新版本已经不支持MySQL了,并且JDK最低要求11。(吐槽:这不好好了解真的是坑的不行,各种起服起不来)
sonarQube7.9.1 JDK11 不支持MySQL
sonarQube7.5 JDK8 支持MySQL等
官方介绍戳这里
关注下这些就OK,看好对应的JDK版本和支持的数据库,选个自己喜欢的吧。
下面拿sonarQube7.5+JDK1.8.0_221+postgreSQL举例
JDK1.8.0_221
JDK11.0.1
直接点没准会需要登录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/profile
wq保存退出后,用source命令使环境变量生效java -version
检查下
OK,JDK弄好了,这里的坑可能就是配环境变量的路径别搞错了,你是啥版本目录叫啥名就填啥。当然还会有坑后面说
数据库这里我用的是PostgresSQL,主要是因为以前老机器就是这个,而且最新版本以及不支持MySQL了,MySQL就没弄
我只安装过两个系统 CentOS7 和 Debian8
Debian 8apt-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过来的哈哈,反正也是一键安装吧
主要说配置文件跟配置数据库吧
配置文件
首先需要改pg_hba.conf这个配置文件,不知道为啥我Debian装完后路径跟网上的不一样
索性就自己用locate pg_hba.conf
搜一下吧,然后vim pg_hba.conf
进去
数据库
安装完后会自动创建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 查看用户
官方文档:https://docs.sonarqube.org/7.5/
官方下载:https://www.sonarqube.org/downloads/
下载
老版本可以到这里找,这里我下载的是sonarQube7.5社区版
下载好丢到你的linux机器上,到/usr/local/下面解压 unzip sonarqube-7.5.zip
解压好之后其实就能起了,但是起服一定要注意三个坑!!!(这几个当时坑的我差点一口老血喷出来 ?)
su - username
!如果你这样做 su username
在这个用户下JDK可能会不生效!(起码Debian是这样)更改系统配置 (这段是我ctrl+c ctrl+v搬过来的 ?)
根据需要执行下述命令以使内核参数符合sonar安装需求
#可以使用以下命令查看这些值:
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
#可以通过以root身份运行以下命令来为当前会话动态设置它们:
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
#为了更永久设置这些值,则必须修改/etc/sysctl.d/99-sonarqube.conf(或/etc/sysctl.conf文件)#文件末尾添加下述两行
vi /etc/sysctl.conf
vm.max_map_count=262144
fs.file-max=65536
#在/etc/profile文件末尾添加ulimit -n 65536
vi /etc/profile
ulimit -n 65536#保存后运行#source /etc/profile 使其生效
source /etc/profile
创建sonar用户
useradd sonar
passwd sonar
密码就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
配置自己机器的IP跟端口,保存退出即可cd /usr/local/sonarQube7.5/bin/
进入bin目录sh sonar.sh restart
或 bash sonar.sh restart
重启即可
至此,sonarQube+PostgreSQL就搭建好了
光弄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-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
保存退出sonar-scanner
终端输入命令进行扫描 进入web页面查看结果
到这里sonarQube+PostgreSQL+sonar-scanner就全配好了,后续还会分享一下怎样集成一些cpp的插件
Thanks.