apply plugin: "jacoco" def jacocoCoverageAggregate = "$buildDir/jacoco/jacocoTestAll.exec" def testedProjects() { subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') } } gradle.projectsEvaluated { configure(testedProjects()) { apply plugin: "jacoco" jacoco { toolVersion = '0.8.1' } test { reports { junitXml.enabled = true html.enabled = false } jacoco { append = false destinationFile = file("$buildDir/jacoco/jacocoTest.exec") classDumpDir = file("$buildDir/jacoco/classpathdumps") } } } task jacocoMerge(type: JacocoMerge) { destinationFile = file(jacocoCoverageAggregate) executionData = project.fileTree(dir: '.', include: '**/build/jacoco/jacocoTest.exec') } sonarqube { properties { property "sonar.organization", "apollo-rsps" property "sonar.projectKey", "apollo:org.apollo" property "sonar.projectName", "Apollo RSPS" property "sonar.kotlin.file.suffixes", ".kt,.kts" property "sonar.jacoco.reportPaths", jacocoCoverageAggregate } } tasks["sonarqube"].dependsOn(jacocoMerge) }