SonarQube插件与Android Studio

6

有没有人成功地在Android Studio项目中使用SonarQube社区IntelliJ插件或“官方”SonarQube IntelliJ插件显示静态代码分析结果?

这两个插件中的第二个需要Maven,但第一个应该是不依赖于特定构建工具的。

我以前成功地在我的项目上运行过SonarRunner,但现在无法做到。但如果我不能在IDE中看到结果,那么让它再次正常工作就没有太大意义了。

3个回答

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"
        }
    }
}

....

然后您可以使用Gradle运行本地Sonar分析:
$ ./gradlew sonarRunner

这将生成一个 sonar-report.json 文件:
$ cat build/sonar/sonar-report.json

现在您拥有插件所需的一切内容:
- SonarQube服务器 - 名称:your_server - 主机URL:http://your.sonar.server:9000 - 本地分析脚本 - 名称: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,并且使用了基于Squid规则集的SonarQube服务器4.0(4.4无法分析gradle项目)。

在Android Studio中配置Sonar的最佳文档是https://github.com/sonar-intellij-plugin/sonar-intellij-plugin。 - Sowmia Sundararajan

6

打开 Android Studio

选择"文件" -> "设置" -> "插件",然后在底部输入“sonarqube”,点击“浏览存储库”。

重新启动 Android Studio。

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

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


0

Sonar Runner现已过时,被Sonarqube Scanner取代。

在您的系统中安装Sonarqube后,您需要将Sonarqube插件添加到项目的应用程序模块gradle文件中。

plugins {
    id "org.sonarqube" version "2.2.1"
}

然后为您的项目定义Sonarqube属性并同步您的项目。
sonarqube {
    properties {
        property "sonar.projectName", "SonarqubeDemo"
        property "sonar.projectKey", "SQKey"
        property "sonar.sources","src/main/java"
        property "sonar.language","java"
        property "sonar.sourceEncoding", "UTF-8"
//        property "sonar.exclusions", "src/main/java/com/foo/Foo.java"
    }
}

构建或同步项目后,打开命令提示符并导航到应用程序模块目录,其中包含您的gradle文件。

执行gradle sonarqube并等待构建完成

以下是一篇文章的链接,其中详细解释了如何在Android中集成SonarQube和SonarQube扫描仪。

Integrating and Understanding SonarQube in Android


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接