// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.5.30' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jacoco:org.jacoco.core:0.8.7" } } allprojects { apply plugin: 'jacoco' repositories { google() mavenCentral() maven { url 'https://jitpack.io' } } afterEvaluate { tasks.withType(JavaCompile.class) { options.compilerArgs << "-Xmaxerrs" << "1000" } } } ext { compileSdkVersion = 30 minSdkVersion = 21 targetSdkVersion = 30 buildToolsVersion = "30.0.3" } task clean(type: Delete) { delete rootProject.buildDir } jacoco { toolVersion = "0.8.7" } task jacocoFullReport(type: JacocoReport) { group = 'Reporting' description = "Generate Jacoco coverage reports for the debug build" reports { html { enabled true destination file('build/reports/jacoco/html') } xml { enabled true destination file('build/reports/jacoco/jacocoFullReport.xml') } } dependsOn ":app:testDebugUnitTest" dependsOn ":api:testDebugUnitTest" dependsOn ":db:testDebugUnitTest" dependsOn ":app:connectedAndroidTest" final fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', 'android/**/*.*'] classDirectories.setFrom files([ fileTree(dir: "$project.rootDir/app/build/intermediates/javac/debug", excludes: fileFilter), fileTree(dir: "$project.rootDir/app/build/tmp/kotlin-classes/debug", excludes: fileFilter), fileTree(dir: "$project.rootDir/api/build/intermediates/javac/debug", excludes: fileFilter), fileTree(dir: "$project.rootDir/api/build/tmp/kotlin-classes/debug", excludes: fileFilter), fileTree(dir: "$project.rootDir/db/build/tmp/kotlin-classes/debug", excludes: fileFilter), ]) def coverageSourceDirs = [ "$project.rootDir/app/src/main/java", "$project.rootDir/api/src/main/java", "$project.rootDir/db/src/main/java", ] additionalSourceDirs.setFrom files(coverageSourceDirs) sourceDirectories.setFrom files(coverageSourceDirs) executionData.setFrom fileTree(dir: project.rootDir, includes: [ 'app/jacoco.exec', 'db/jacoco.exec', 'api/jacoco.exec', 'app/build/outputs/code_coverage/debugAndroidTest/connected/*-coverage.ec' ]) }