Gradle 与 SonarQube 的依赖关系

Gradle dependencies with SonarQube

我有一个使用 Android Studio 的多模块项目,我想让它与 Sonarqube 5.1 一起工作。

当我运行:

gradlew sonarqube

我收到 "class not found" 错误,与依赖项 jar 相关。例如:

....
12:56:50.308 ERROR - Class not found: com.google.protobuf.ProtocolMessageEnum
12:56:50.309 ERROR - Class not found: com.google.protobuf.Internal
....

如何在不为每个依赖项添加绝对路径的情况下添加 gradle 依赖项?不是自动的吗?

这是我的配置

dependencies {
    compile 'com.google.protobuf:protobuf-java:2.5.0'
}

sonarqube  {
    properties {
        property 'sonar.projectName', 'myApp'
        property 'sonar.java.binaries', file('build/intermediates/classes/debug')
        property 'sonar.java.libraries','C:/Programs/Android/sdk/platforms/android-22/android.jar'  
    }
}

这有效:

property 'sonar.java.libraries','C:/Programs/Android/sdk/platforms/android-22/android.jar, PATH/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/2.5.0/a10732c76bfacdbd633a7eb0f7968b1059a65dfa/*.jar

如果绝对路径对您有效,您可以尝试像这样构建字符串:

def sonarLibraries = buildscript.configurations.classpath.join(",")
property 'sonar.libraries', sonarLibraries