SonarQube
当前使用
169机器上运行安装
因为 sonarqube6.7 最低需要mysql5.6, 所以在168启动了mysql 5.6 docker 3307
docker run -d --name sonarqube6.7 \
-p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=root \
-e SONARQUBE_JDBC_PASSWORD=123456 \
-e SONARQUBE_JDBC_URL='jdbc:mysql://192.168.8.168:3307/sonar?useUnicode=true&characterEncoding=utf8' \
-v /etc/localtime:/etc/localtime \
sonarqube:6.7
报错: Unrecoverable indexation failures
removing the data/es5 folder after encountering the same error and restarting sonar.
- 访问: http://192.168.8.169:9000/ admin/admin , 生产token: root / c1688e10298a756650b3e0b9278695b712591c3e
- (可以不做) 在maven setting.xml添加profile
通过maven插件运行:
mvn sonar:sonar \
-Dsonar.host.url=http://192.168.8.169:9000 \
-Dsonar.login=164430350d3ae7722ff4f847009ef6ae0f15d750
报错:Failed to upload report - 500: An error has occurred. Please contact your administrator
如果你是用的是MySQL,设置数据库允许接收的最大包,然后重启数据库,然后重启服务器
需要设置mysql max_allowed_packet (mysql docker 有详细介绍)
报错:The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size
将innodb_log_file_size=256M 添加到配置文件中并重启
sonar-scanner扫描其他语言工程
-
安装
下载 https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip 添加bin 到path 运行 sonar-scanner \ -Dsonar.projectKey=vue-customer-center \ -Dsonar.sources=./src
-
配置
vim /usr/local/sonar-scanner/conf/sonar-scanner.properties sonar.host.url=http://192.168.8.169:9000 sonar.sourceEncoding=UTF-8 sonar.login=164430350d3ae7722ff4f847009ef6ae0f15d750
-
日志
docker logs -f -t --tail 3000 6face22d4f34
定时shell 运行sonar
-
01-sonar.sh
#!/bin/bash cd /eship/code/eship for file in $(ls | grep -E 'eship|author') do cd $file mvn sonar:sonar -Dsonar.host.url=http://192.168.8.169:9000 -Dsonar.login=164430350d3ae7722ff4f847009ef6ae0f15d750 cd .. done cd /eship/code for file in $(ls | grep -E 'vue') do cd $file sonar-scanner -Dsonar.projectKey=$file -Dsonar.sources=./src cd .. done
-
crontab -e
0 23 * * * sh /eship/01-sonar.sh
其他
- 注意:如果将容器删掉重新起来,rules等信息会丢失导致执行失败
- 配置maven的settings文件
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.jdbc.url>jdbc:mysql://192.168.8.168:3307/sonar</sonar.jdbc.url> <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver> <sonar.jdbc.username>root</sonar.jdbc.username> <sonar.jdbc.password>123456</sonar.jdbc.password> <!-- SERVER ON A REMOTE HOST --> <sonar.host.url>http://192.168.8.169:9000</sonar.host.url> </properties> </profile>