1.环境及工具准备
Linux 64位
Mysql 5.6
sonarqube 6.7.5
sonar-scanner-3.2.0.1227-linux
2.mysql 创建user,并授权
> grant all privileges on sonarqube.* to sonar@‘%' IDENTIFIED BY 'password';#密码
> CREATE USER 'sonar’@'%' IDENTIFIED BY 'password';#密码
> GRANT all privileges ON sonarqube.* TO sonar’@‘%' IDENTIFIED BY 'password';#密码
> flush privileges;
3.Sonarqube环境搭建
3.1将sonarqube安装到/usr/local,建立软连接,方便后期操作(ln -s /usr/local/sonarqube-6.7.5/ sonarqube)
ln -s /usr/local/sonarqube-6.7.5/ sonarqube
3.2Sonarqube配置修改
vim /usr/local/sonarqube/conf/sonar.properties
取消对应行数的注释,填写对应的信息。
把数据库ip,port,数据库名依次填写到sonar.jdbc.url后面
设置sonar的地址和端口号如下
3.3启动/停止服务(用远程用户)
/usr/local/sonarqube/bin/linux-x86-64
./sonar.sh start
./sonar.sh stop
如果有问题查看日志
/usr/local/sonarqube/logs/sonar.log
/usr/local/sonarqube/logs/es.log(这里报错比较多)
注:只能用远程用户来启动,不能用root用户
如何新建远程用户:useradd -g 新建的组 新建的用户
password 新建的用户 #设置密码
3.4启动成功的话可以直接登录(账号和密码默认都是admin)
http://192.168.1.182:9001
3.5安装中文插件
直接在配置,应用市场搜chinese pack下载好,再重启就可以了。或者用谷歌浏览器的话也可以直接右键翻译。
4. SonarScanner安装
4.1 SonarQube Scanner也安装到/usr/local,建立软连接,方便后期操作(ln -s /usr/local/sonar-scanner-3.2.0.1227-linux/ sonar-scanner)
ln -s /usr/local/sonar-scanner-3.2.0.1227-linux/ sonar-scanner
4.2 sonar-scanner中配置修改:
vim /usr/local/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://your_host:your_port/[your_prefix]
4.3添加环境变量
export PATH=$PATH:/usr/local/sonar-scanner/bin
查看服务是否ok
sonar-scanner -h
4.4.在project中使用
新建一个sonar-project.properties文件
内容如下:
sonar.projectKey=
sonar.projectName=
sonar.projectVersion=1.0
sonar.sources=
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.host.url=
sonar.java.binaries=
4.5用root用户来启动分析,如果用远程用户会报错:
sonar-scanner -X
5.执行完成后,点开网址,查看报告
6.jenkins+sonnar-scanner
6.1安装插件
6.2进行配置,让jenkins和sonar结合在一起
6.3新建一个项目
6.4进入项目进行配置
sonar.projectKey=
sonar.projectName=
sonar.projectVersion=1.0.0
sonar.sources=./
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.host.url=http://192.168.1.182:9001
sonar.java.binaries=./
注:./目录 为/root/.jenkins/workspace/项目名;可以把项目所在路径建立一个软连接,在你的项目路径下,这样新部署的包去扫描的时候不用修改路径。
6.5点击保存,然后就可以立即构建啦,可以查看控制台输出。
6.6执行成功后点击链接就可以查看对应的分析报告了。
附录:整个过程中遇到的一些问题
1.启动sonarqube报错
Process exited with exit value [es]: 1
提示es报错,那么可以到es.log下查看具体的原因
1.max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
vim /etc/security/limits.conf
lqm1 hard nofile 65536
lqm1 soft nofile 65536
这里的lqm1为上面创建的用来启动sonar的用户,修改好之后要切换到lqm1这个用户之后才能生效。
使用ulimit -Hn指令查看配置是否生效:
ulimit -Hn
2.max number of threads [1024] for user [lqm1] is too low, increase to at least [2048]
同上,
vim /etc/security/limits.conf
lqm1 soft nproc 2048
lqm1 hard nproc 4096
3.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
这里要增加vm.max_map_count的值
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
在/etc/sysctl.conf中添加vm.max_map_count=262144后执行sysctl -p使配置生效