Sonar Android Lint没有找到匹配的问题。

5
我遇到了以下问题:我已经安装了SonarQube和带有“Android Lint”质量配置文件的Android插件。当我使用“Android Lint”配置文件执行我的build.gradle脚本时,sonar-runner插件工作良好,但在SonarQube中,我看不到任何匹配的问题,只有零个。
然而,当我包含另一个配置文件-不是“Android Lint”时-我可以看到很多问题。同时,在我的Android SDK中应用它自己的lint时,我可以看到157个问题。这可能是什么原因?
sonar-版本3.7.4;android插件-版本0.1
3个回答

3

您的sonar.sources属性应该指向AndroidManifest.xml文件的根。例如,如果您的AndroidManifest.xml文件位于src/main,那么您的build.gradle文件应包含:

sonarRunner {
    sonarProperties {
        ...
        property "sonar.sources", "src/main"
        property "sonar.profile", "Android Lint"
        ...
    }
}

如果您需要在sonar.sources中添加更多的路径,您可以将它们作为逗号分隔列表放置。
您可以在Sonar Android插件的源代码中找到确定何时运行分析的方法。

1
将您的声纳属性更改为以下内容:
apply plugin: "org.sonarqube"

sonarqube {

properties {

    property "sonar.projectName", "appa"

    property "sonar.projectKey", "appa_app"

    property "sonar.projectVersion", "1.0"

    property "sonar.analysis.mode", "publish"

    property "sonar.language", "java"

    property 'sonar.sourceEncoding', "UTF-8"

    property "sonar.sources", "./src/main"

    //property "sonar.exclusions", "**/*Entity.java"

  //  property "sonar.exclusions", "src/main/java/com/apparkb/model/**, **/*Entity.java"

    property "sonar.host.url", "http://192.168.21.33:9000"

    property "sonar.login", "admin"

    property "sonar.profile", "testlint"//use your quality profile instead

    property 'sonar.import_unknown_files', true

    property "sonar.android.lint.report", "./build/outputs/lint-results-debug.xml"

    property "sonar.password", "admin"

    property "sonar.java.binaries", "build/"



}
}

要创建lint-results-debug.xml文件,您需要在工作室终端上运行以下命令:

./gradlew lint

它将生成缺失的XML报告。请注意,它可以为每个构建变体生成报告(默认情况下Debug会生成build/outputs/lint-results-debug.xml)。因此,您可以根据构建变体调用lintDebug、lintRelease等命令。
并将lint属性更改为:
lintOptions { // set to true to turn off analysis progress reporting by lint

    quiet true

    // if true, stop the gradle build if errors are found

    abortOnError false

    // do not ignore warnings

    warningsAsErrors true
}

现在如果你运行。
./gradlew sonarqube

你将会得到所示结果,实际上是本地文件报告,实际上是托管在服务器上的输入图像描述

请问您能否检查一下这个链接:https://stackoverflow.com/questions/65963755/sonarqube-for-multi-module-project-for-android - user2234

0

不幸的是,如果你只是将sonar.sources指向src/main,你会遇到所有源代码的问题,因为你很可能没有设置minSdkVersion和targetSdkVersion(这来自gradle)。我尝试将我的源代码设置为以下内容:

build/intermediates/bundles/release,src/main/java

但由于API级别的原因,我仍然会收到大量(无效)错误。


你能找到一个明确的解决方案吗? - FoY
1
不,我们在Hudson/Jenkins中使用LINT输出,并使用Sonar进行传统的非Android分析。有点糟糕,但事实就是这样。 - Eric Miles

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