使用Android Studio的SonarQube插件

Mer*_*erk 6 android intellij-idea sonar-runner android-studio sonarqube

有没有人成功地让无论是SonarQube社区的IntelliJ插件或"官方" SonarQube的IntelliJ插件显示的Android Studio项目静态代码分析的结果?

其中第二个需要Maven,但其中第一个应该是不可知的.

不知何故,我设法在我的项目上运行了一个sonarRunner,但我现在无法做到.但是,如果我在IDE中看不到我的结果,那么重新开始工作就没什么意义了.

Ole*_*ski 9

简短回答:是的,您可以使用SonarQube社区IntelliJ插件

答案很长:

假设你有一个build.gradle,如:

apply plugin: "sonar-runner"

sonarRunner {
    sonarProperties {
        // can be also set on command line like -Dsonar.analysis.mode=incremental
        property "sonar.host.url", "http://your.sonar.server:9000"
        property "sonar.analysis.mode", "incremental" 
        property 'sonar.sourceEncoding', 'UTF-8'
        property 'sonar.language', 'java'
        property 'sonar.profile', 'my_profile'
    }
}

subprojects {
    sonarRunner {
        sonarProperties {
            properties["sonar.sources"] += "src/main/java"
        }
    }
}

....
Run Code Online (Sandbox Code Playgroud)

然后你可以用gradle运行本地声纳分析:

$ ./gradlew sonarRunner
Run Code Online (Sandbox Code Playgroud)

这将生成一个sonar-report.json文件:

$ cat build/sonar/sonar-report.json
Run Code Online (Sandbox Code Playgroud)

现在你已经拥有插件所需的一切:

  • SonarQube服务器
  • 本地分析脚本
    • 名称:gradle脚本
    • 脚本:/ path/to/android-studio-example-project/gradlew sonarRunner
    • sonar-report.json的路径:/path/to/android-studio-example-project/build/sonar/sonar-report.json

配置完成后,您可以通过在Intellij(Android Studio)中运行SonarQube(新问题)检查来查看新问题

我用这个项目作了一个例子:

https://github.com/sonar-intellij-plugin/android-studio-example-project

和sonarqube服务器4.0,只有基于squid的规则集(4.4无法分析gradle项目)


小智 6

打开Android工作室

文件 -> 设置 -> 插件 -> 然后输入 sonarqube 并单击底部的浏览存储库。

重新启动 Android Studio。

现在右键单击项目 - >分析 - > Sonarlint - >使用Sonarlint分析所有文件

结果将显示在底部的 Sonarlint 视图中