使用 gradle 在 sonarqube 中使用 java 和 java 脚本进行项目

Project with both java and javascript in sonarqube using gradle

我们有一个使用 Java 的非常标准的 Web 项目,它在标准 src/main/webapp 文件夹中还包含一些 java 脚本代码。我们使用 Gradle 2.14 作为构建工具。

我们刚刚在新服务器上安装了全新的 Sonarqube 6.0.1,检查了 Java 和 Javascript 插件是否都安装了,并修改了 build.gradle 文件根据 Sonarqube documentation 上的建议:

plugins {
    id 'org.sonarqube' version '2.0.1'
}

sonarqube {
    properties {
        property 'sonar.projectName', 'Our-Project'
        property 'sonar.projectKey', 'com.ourcompany:our-project'
    }
}

这没有按预期工作:java 代码分析正确,我们可以在声纳上浏览结果,但 java 脚本代码未分析。

我们做错了什么?谢谢。

您确定 sonar.sources 在分析中包含了 js 文件吗?您可以添加模块的 gradle 配置吗?上面的文件看起来像应用程序级别 gradle 文件。您的应用程序应该至少有一个模块,该模块也有一个 gradle 文件。
Android Studio Project Structure

您需要将源代码添加到模块的 gradle 文件中。这是一个例子:

project(":app") {
    sonarqube {
        properties {
            property "sonar.analysis.mode", "publish"
            property "sonar.sources", "src/main/java"
            property "sonar.java.binaries", 
                "build/intermediates/classes/debug"
            property "sonar.junit.reportsPath", 
                "build/test-results/developDebug"
            property "sonar.android.lint.report", 
                "build/outputs/lint-results-developDebug.xml"
            property "sonar.test", "src/test/java"
        }
     }
 } 

我已经通过在 sonarqube 块中添加此 属性 来解决我们的问题:

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