plugins { id 'application' id 'org.springframework.boot' version '3.4.1' id 'io.spring.dependency-management' version '1.1.7' id 'com.github.ben-manes.versions' version '0.51.0' id 'java' id 'jacoco' } application { mainClass = 'com.between.Program' group = 'com.between' version = '0.0.1-SNAPSHOT' } sourceCompatibility = 17 configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'org.apache.groovy:groovy' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2:2.3.232' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok:1.18.36' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'net.bytebuddy:byte-buddy:1.16.1' testImplementation "org.mockito:mockito-core:5.15.2" } test { useJUnitPlatform() finalizedBy jacocoTestReport // report is always generated after tests run } jar { enabled = false } jacoco { toolVersion = "0.8.9" reportsDirectory = file("$buildDir/reports/jacoco") } jacocoTestReport { // ./gradlew test jacocoTestReport from CLI dependsOn test // tests are required to run before generating the report group = "Reporting" reports { xml.required.set(true) csv.required.set(true) html.destination file("${buildDir}/reports/coverage") } afterEvaluate { classDirectories.setFrom(files(classDirectories.files.collect { fileTree(dir: it, exclude: [ '**/between/Program.*', ]) })) } }