# 线下班第二期_代码审计平台_20180526

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执行结果的截图贴到回复,比如