sonar搭建
docker run -d --name sonarqube \\
-p 9000:9000 -p 9092:9092 \\
registry.docker-cn.com/library/sonarqube
sonar环境
http://sonar.testing-studio.com:9000/
默认用户名:admin
默认密码:admin
token:hogwarts: 39a85580b70530a9de5df461e8536a9bef5ab5fc
scanner示例
sonar-scanner \\
-Dsonar.host.url=http://sonar.testing-studio.com:9000 \\
-Dsonar.login=39a85580b70530a9de5df461e8536a9bef5ab5fc
maven示例
mvn sonar:sonar \\
-Dsonar.host.url=http://sonar.testing-studio.com:9000 \\
-Dsonar.login=39a85580b70530a9de5df461e8536a9bef5ab5fc
gradle示例
plugins {
id "org.sonarqube" version "2.6"
}
./gradlew sonarqube \\
-Dsonar.host.url=http://sonar.testing-studio.com:9000 \\
-Dsonar.login=39a85580b70530a9de5df461e8536a9bef5ab5fc
scanner
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
mac: brew install sonar-scanner
官方示例
下载样例
git clone https://github.com/SonarSource/sonar-scanning-examples.git
cd sonar-scanning-examples/sonarqube-scanner
maven结合
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
修改 ~/.m2/settings.xml
<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>
gradle
~/.gradle/gradle.properties
systemProp.sonar.host.url=http://sonar.testing-studio.com:9000
#----- Security (when 'sonar.forceAuthentication' is set to 'true')
systemProp.sonar.login=39a85580b70530a9de5df461e8536a9bef5ab5fc
Android项目演练
https://github.com/testerhome/A-Native-TesterHome
作业
作业1
把官方示例里面的sonarqube-scanner目录下的结果分析上传到http://sonar.testing-studio.com:9000,以自己的名字开头,把项目的截图贴到回复。
git clone https://github.com/SonarSource/sonar-scanning-examples.git
cd sonar-scanning-examples/sonarqube-scanner
作业2
把maven项目和gradle项目的代码扫描结果发到sonar,贴结果截图
作业3
创建jenkins job,去调用本地的代码扫描任务,并把结果上传到sonar服务。把jenkins job执行结果的截图贴到回复,比如