Android:从gradle运行sonarRunner

whl*_*hlk 6 gradle android-build sonar-runner android-gradle-plugin sonarqube

我试图让声纳报告与gradle Android项目一起运行.因为大多数重要的声纳属性仅在项目是项目的时候由sonarRunner gradle插件应用,所以java我在将它们应用于com.android.application项目时遇到了麻烦.

这是我的sonarRunner配置:

sonarRunner {
    sonarProperties {
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.profile", "Android Lint"
        property "sonar.sources", android.sourceSets.main.java.srcDirs
        property "sonar.binaries", file("${project.buildDir}/intermediates/classes/app") 
        property "sonar.libraries", "" // what to put here?
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,声纳正在抱怨没有找到类,因为无法引用库.

如何在我的sonarRunner配置中引用依赖项+ android库?


示例错误输出:

INFO  - Load batch settings
INFO  - User cache: C:\Users\mannaz\.sonar\cache
INFO  - Install plugins
INFO  - Install JDBC driver
INFO  - Create JDBC datasource for jdbc:postgresql://sonar.local/sonar?useUnicode=true&characterEncoding=utf8
INFO  - Initializing Hibernate
INFO  - Load project settings
INFO  - Apply project exclusions
WARN  - 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
INFO  - -------------  Scan app
INFO  - Load module settings
INFO  - Loading technical debt model...
INFO  - Loading technical debt model done: 20 ms
INFO  - Loading rules...
INFO  - Loading rules done: 584 ms
INFO  - Configure Maven plugins
INFO  - Compare to previous analysis (2014-08-05)
INFO  - Compare over 30 days (2014-07-06, analysis of 2014-07-07 11:33:19.0)
INFO  - Compare to previous version (2014-07-21)
INFO  - No quality gate is configured.
INFO  - Base dir: C:\Users\mannaz\workspace\project\app
INFO  - Working dir: C:\Users\mannaz\workspace\project\app\build\sonar
INFO  - Source dirs: C:\Users\mannaz\workspace\project\app\src\main\java
INFO  - Binary dirs: C:\Users\mannaz\workspace\project\app\build\intermediates\classes\app
INFO  - Source encoding: UTF-8, default locale: de_AT
INFO  - Index files
INFO  - 197 files indexed
INFO  - Quality profile for java: Android Lint
INFO  - Sensor JavaSquidSensor...
INFO  - Java Main Files AST scan...
INFO  - 197 source files to be analyzed
ERROR - Class not found: android.widget.RelativeLayout
ERROR - Class not found: android.os.Handler
ERROR - Class not found: android.content.Context
ERROR - Class not found: android.app.Activity
ERROR - Class not found: android.util.AttributeSet
ERROR - Class not found: android.view.View
ERROR - Class not found: com.nostra13.universalimageloader.core.DisplayImageOptions
ERROR - Class not found: com.google.gson.Gson
Run Code Online (Sandbox Code Playgroud)

The*_*End 0

我想您只需使用正确的配置手动设置库属性即可。像这样的东西:

sonarRunner {
    sonarProperties {
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.profile", "Android Lint"
        property "sonar.sources", android.sourceSets.main.java.srcDirs
        property "sonar.binaries", file("${project.buildDir}/intermediates/classes/app") 
        property "sonar.libraries", "android.sourceSets.main.runtimeClasspath"
    }
}
Run Code Online (Sandbox Code Playgroud)

或者无论您的正确依赖配置是什么,都是正确的。

  • “或者你正确的依赖配置是正确的。”这正是我想知道的:正确的依赖配置是什么? (2认同)