apply plugin: "java-library" apply plugin: "groovy" apply plugin: 'maven' apply plugin: 'jacoco' apply plugin: 'maven-publish' sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { mavenCentral() } dependencies { implementation("org.slf4j:slf4j-api:${slf4jVersion}") api('com.google.code.gson:gson:2.8.7') api('com.squareup.okhttp3:okhttp:4.9.1') testImplementation("org.slf4j:slf4j-simple:${slf4jVersion}") testImplementation('com.squareup.okhttp3:mockwebserver:4.9.1') testCompile("org.codehaus.groovy:groovy-all:${groovyVersion}") testCompile("org.spockframework:spock-core:${spockVersion}") { exclude group: "org.codehaus.groovy" } testCompile('com.athaydes:spock-reports:2.0-groovy-3.0') { transitive = false // this avoids affecting your version of Groovy/Spock } } publishing { publications { mavenJava(MavenPublication) { from components.java } } repositories { mavenLocal() } } jacoco { toolVersion = "0.8.4" } jacocoTestReport { group = "verification" reports { xml.enabled false csv.enabled false html.destination file("${buildDir}/reports/coverage") } afterEvaluate { classDirectories.setFrom(files(classDirectories.files.collect { fileTree(dir: it, exclude: 'biz/nellemann/libcvrapi/pojo/**') })) } } test.finalizedBy jacocoTestReport jacocoTestCoverageVerification { violationRules { rule { element = 'CLASS' limit { counter = 'LINE' value = 'COVEREDRATIO' minimum = 0.7 } excludes = [ 'biz.nellemann.libcvrapi.pojo.*' ] } } } check.dependsOn jacocoTestCoverageVerification