【问题标题】:Sonar not analyzing Android xml files声纳不分析 Android xml 文件
【发布时间】:2016-01-19 21:20:01
【问题描述】:

我在 Jenkins 中添加了一个作业来分析一个 android 项目,但我无法让它考虑到 xml 文件(在 res/ 和子目录中)。

我的 sonar.properties:

# required metadata
sonar.projectKey=AndroidProj
sonar.projectName=AndroidProj
sonar.projectVersion=1.0

# path to source directories (required)
sonar.sources=src
sonar.binaries=bin/classes

# The value of the property must be the key of the language.
sonar.language=java
sonar.sourceEncoding=UTF-8

sonar.profile=Android Lint

这在 SonarQube Web UI 中给我的只是 java 文件(实际上sonar.language=java 应该表明这一点),那么我如何去获取对 xml 文件的 Lint 检查呢?

设置sonar.language=xml 不适合sonar.profile=Android Lint

【问题讨论】:

    标签: android sonarqube


    【解决方案1】:

    由于 SonarQueb 不能正确支持多语言项目,Android 插件确实只报告 Java 文件的问题。

    我们的目标显然是在多语言支持准备好后立即报告有关 XML 文件的问题。您可以为以下票投一票并观看以了解进度:http://jira.codehaus.org/browse/SONAR-926

    【讨论】:

    • 对不起,我不明白:不是多语言支持already implemented?。我使用 Sonar 来分析另一个具有两个子模块(一个“js”和另一个“web”)的项目,并且效果很好。此外,您所指的票也是“已关闭(固定)”。
    • 顺便说一句,类似的问题可能是“有没有办法只对 xml 文件进行 Android Lint 分析?”。我可以接受进行多重分析的想法。
    • 糟糕,复制粘贴不好,我用正确的 URL 编辑了我的答案。我说的是对多语言的全面支持,SonarQube 目前提供的只是一种解决方法。
    • 好的,有道理!同时,您认为仅对 xml 文件进行单独的 Android Lint 分析是否可行?
    • 不适用于当前版本的插件。不幸的是,在多语言支持完成之前,我们不会在这方面投入时间(这已经消耗了我们的时间!)。
    【解决方案2】:

    对于在更高版本的 SonarQube(我使用的是 5.3)中偶然发现此问题的任何人,您需要以下内容:

    1. Android 插件已安装
    2. 已安装 XML 插件
    3. 删除“sonar.language”属性,以便声纳可以检测默认使用的语言
    4. 将您的 res 文件夹添加到您的“sonar.sources”属性中。我的看起来像这样:

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

      (在 gradle 的 sonarqube 属性块中定义)。

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 2015-12-19
      • 2015-04-29
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 2017-04-20
      • 2015-12-02
      • 2016-03-12
      相关资源
      最近更新 更多