【问题标题】:SonarQube plugin with Android Studio带有 Android Studio 的 SonarQube 插件
【发布时间】:2015-01-07 08:44:17
【问题描述】:

有没有人成功获得 SonarQube Community IntelliJ 插件或“官方”SonarQube IntelliJ 插件来显示 Android Studio 项目中的静态代码分析结果?

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

过去,我以某种方式设法在我的项目上运行了 sonarRunner,但我现在无法做到。但是如果我在 IDE 中看不到我的结果,那么让它再次工作就没有多大意义了。

【问题讨论】:

    标签: android intellij-idea android-studio sonarqube sonar-runner


    【解决方案1】:

    简短回答:是的,您可以使用 SonarQube Community 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 运行本地声纳分析:

    $ ./gradlew sonarRunner
    

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

    $ cat build/sonar/sonar-report.json
    

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

    • 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

    以及带有仅基于 squid 的规则集的 sonarqube 服务器 4.0(4.4 无法分析 gradle 项目)

    【讨论】:

    【解决方案2】:

    打开安卓工作室

    File -> Settings -> Plugins -> 然后输入 sonarqube 并点击底部的 Browse repositories。

    重启 Android Studio。

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

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

    【讨论】:

      【解决方案3】:

      Sonar Runner 现在已经过时,取而代之的是 Sonarqube Scanner。

      在您的系统中安装 sonarqube 后,您需要将 sonarqube 插件添加到您项目的 app 模块 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

      【讨论】:

        猜你喜欢
        • 2014-08-26
        • 2016-04-25
        • 2015-06-17
        • 2016-02-28
        • 2015-02-01
        • 2019-07-04
        • 2017-07-30
        • 2017-12-22
        • 2013-07-27
        相关资源
        最近更新 更多