1.下载安装包,我安装的是6.7.6版本
https://www.sonarqube.org/downloads/
2.安装前的环境要求
JDK1.8+
数据库,我用的是Mysql5.6版本
3.修改配置
打开SonarQube目录下的conf/sonar.properties文件,配置它的数据库连接,启用和配置下面的选项:
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
#linux版本不同时,启动es会出现错误,加入下面配置可避免
sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false
修改配置文件wrapper.conf,指定jdk版本
wrapper.java.command=/usr/java/jdk1.8.0_111/bin/java
修改elasticsearch.yml配置文件,在 Memory 区域加上
bootstrap.system_call_filter:false
4.切换到bin目录下,执行,必须用非root用户启动该脚本
./sonar.sh start
因为安全问题elasticsearch 不让用root用户直接运行
创建用户
$ adduser sonarUser
为用户创建密码
$ passwd sonarUser
输入两次密码,
修改sonar的目录和用户组为sonarUser
$ chown -R sonarUser:sonarUser sonarqube-6.7.2
启动es时,还会遇到以下各种错误
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048] 解决:切换到root用户,编辑limits.conf 添加类似如下内容 vi /etc/security/limits.conf 添加如下内容: * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
问题三:max number of threads [1024] for user [lish] likely too low, increase to at least [2048] 解决:切换到root用户,进入limits.d目录下修改配置文件。 vi /etc/security/limits.d/90-nproc.conf 修改如下内容: * soft nproc 1024 #修改为 * soft nproc 2048
问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 解决:切换到root用户修改配置sysctl.conf vi /etc/sysctl.conf 添加下面配置: vm.max_map_count=655360 并执行命令: sysctl -p
5.使用Maven构建扫描,参考 https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
在Maven配置文件中加入以下配置:
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
使用以下命令构建:
mvn clean verify sonar:sonar
扫描小项目,可以正常上传sonarqube管理界面,但是在扫描大项目时,出现一个超时错误,判断应该时sonarqube的webservice设置过短,尝试过各种方法,未解决
官网提示是在UI界面setting中修改配置,但未找到sonar.ws.timeout配置,于是用postman模拟请求修改该配置项,还是未解决