gradle - 自定义源集的Gradle/SonarQube文档问题

标签 gradle sonarqube sonarqube-scan

我要解决的特定问题是服务器上未显示集成测试。

同样,此处给出的示例代码似乎是错误的:
SonarQube: Analyzing Custom Source Sets

具体来说,此代码示例:

sonarqube {
    properties {
        properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs
        properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs
    }
}

运行此结果将导致:
Invalid value of sonar.tests for... 

这到底应该是什么?根据我正在阅读的另一个论坛,这应该是逗号分隔目录的列表。所以我尝试了:
sonarqube {
  properties {
    properties["sonar.tests"] += sourceSets.integrationTest
                                                 .allSource.srcDirs.join(",")
  }
}

...同样的错误。请注意,ingegrationTest对我们的构建是正确的。

最佳答案

以下代码有效:

sonarqube {

    properties {
        properties["sonar.tests"] += sourceSets.integrationTest.allSource.srcDirs.findAll({it.exists()})

        if (file("$project.buildDir/jacoco/test.exec").exists())
            property "sonar.jacoco.reportPath", "$project.buildDir/jacoco/test.exec"
        if (file("$project.buildDir/jacoco/integrationTest.exec").exists())
            property "sonar.jacoco.itReportPath", "$project.buildDir/jacoco/integrationTest.exec"
    }
}

我将此导入到需要它的每个项目中,以避免使用subProjects。根据Gradle文档,使用subProjects和/或allProjects会导致耦合,从而对并行性产生负面影响。 IDK如果导入更好,但我希望如此。

关于gradle - 自定义源集的Gradle/SonarQube文档问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038136/

相关文章:

java - 使用 SonarLint 插件和 SonarQube 服务器未检测到 HTTP 请求重定向漏洞

android - git - 使用 Gradle 构建将远程 git 代码 check out 到 Android Studio 导入的项目中

Grails 3.1.4 和 Docker - grails 命令返回 "No profile found for name web"

android - react-native运行Android构建错误-无法解决:com.android.support:appcompat-v7:26.0.2

sonarqube - 将 @SuppressWarnings 与 Sonar checkstyle 插件一起使用

sonarqube - Sonar findbugs 堆大小

sonarqube - 将 Slather 报告发布到 SonarQube

java - sonarqube 的 docker 镜像可以使用 env 来配置任何设置吗?

Jazz RTC 的 SonarQube 责备信息在用户名中包含逗号

android - Gradle 复合构建找不到包含的项目依赖项