# sonarqube7.4 安装
# snarqube 安装说明
条件限制:
- jdk1.8
- 数据库 oracle 的运行环境是 jre8 ,mysql 支持 5.6 ,5.7
- 浏览器必须启动支持 javascript ,支持火狐,谷歌,苹果等浏览器,支持 IE11 以上的版本。
# 下载 Sonar
链接:https://pan.baidu.com/s/10FIvnR0Me48EFG2kGX1vUg 提取码:v430
# 上传解压
mkdir sonarqube
上传到目录 /opt/alinesno/sonarqube
解压: unzip sonarqube-7.4.zip
# 新建 sonar 用户
由于 sonar 是不允许 root 用户情况下运行的,因此需要先创建一个非 root 用户。 这里,创建一个名为 sonar 的用户 useradd sonar 设置密码 passwd sonar 密码为:Alinesno123$%^123
# 设置目录权限
chmod -R 777 sonarqube-7.4
执行完以后,使用 ll 命令查看目录下文件详细,发现权限已经全部打开了,所有用户都可访问
# 设置文件所属用户
chown -R sonar:sonar /opt/alinesno/sonarqube/sonarqube-7.4
# 修改配置文件
cd /sonarqube-7.4/conf
vim sonar.properties
# 修改以下内容
sonar.jdbc.url=jdbc:mysql://47.113.116.150:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=HouGuiYu@123!@#
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
这里是修改数据库配置,请务必在事先创建好名为 qjfsonar 的数据库,否则将启动失败
# 启动 sonarqube
cd /opt/alinesno/sonarqube/sonarqube-7.4/bin/linux-x86-64
bash sonar.sh start #启动服务
bash sonar.sh stop #停止服务
bash sonar.sh restart #重启服务
查看日志
tail -F sonarqube-7.4/logs/sonar.log
# 访问 sonarqube
访问 http://sonarqube.lbxinhu.com/ (opens new window) 登录:admin/admin 设置 token 为:alinesno 这里生成的密码串为 alinesno: 37231eae21cf053709a1fc93b99ba4503a91b532,请注意保存
# 中文插件的安装
7.4 版本的只能使用 sonar-l10n-zh-plugin-1.24 版的中文插件 下载完成后,将插件包上传至/extensions/plugins 目录中,重启 sonar 生效
# 添加 sonarqube 开机自启动
cd /etc/rc.d
vim rc.local
sonarqube开机自启
/opt/alinesno/sonarqube/sonarqube-7.4/bin/sonar.sh start
保存后退出
# 添加 maven 配置
在全局的 settings 文件中加入如下配置:
</profiles>
<profile>
<id>sonarqube</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<!--
<sonar.host.url>http://sonarqube.lbxinhu.com</sonar.host.url>
<sonar.host.url>http://localhost:9000</sonar.host.url>
-->
<sonar.host.url>http://localhost:9000</sonar.host.url>
<sonar.login>37231eae21cf053709a1fc93b99ba4503a91b532</sonar.login>
<sonar.password></sonar.password>
<sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
</properties>
</profile>
</profiles>
<!--激活profile -->
<activeProfiles>
<activeProfile>linesno</activeProfile>
<activeProfile>sonarqube</activeProfile>
</activeProfiles>
由于是设置 token 为 sonar 的身份认证信息,所以 password 留空即可
# 在 nginx 中配置超时设置
vim sonarqube.lbxinhu.com.conf 添加一下内容
server {
listen 80 ;
server_name sonarqube.lbxinhu.com;
location / {
proxy_pass http://47.113.116.150:9000/; #来自jsp请求交给tomcat处理
proxy_pass http://localhost:9000/; #来自jsp请求交给tomcat处理
proxy_redirect off;
proxy_next_upstream_tries 3; 超时重复请求次数
proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
# 使用 sonar 执行分析时的注意事项
1、出现 sonar 权限不足异常 参考解决方案:在 sonar:sonar 后添加身份信息,如
mvn sonar:sonar \
-Dsonar.host.url=http://sonarqube.lbxinhu.com \
-Dsonar.login=37231eae21cf053709a1fc93b99ba4503a91b532
2、出现Please provide compiled classes of your project with sonar.java.binaries property
错误分析:sonar 执行代码分析时,会涉及到其他编译后源码的分析,由于没有编译导致源码缺失报错
参考解决方案: 在执行 maven 的 compile 命令后再执行 sonar:sonar 如
mvn -B -U -f ${WORKSPACE}/pom.xml clean compile sonar:sonar