import java.nio.file.Path import java.time.LocalDateTime import java.time.format.DateTimeFormatter // Plugins apply plugin: "jacoco" apply plugin: "java" java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } wpilibTools.deps.wpilibVersion = wpilibVersion dependencies { // Jackson implementation "com.fasterxml.jackson.core:jackson-annotations:2.12.4" implementation "com.fasterxml.jackson.core:jackson-core:2.12.4" implementation "com.fasterxml.jackson.core:jackson-databind:2.12.4" // Apache commons implementation group: "org.apache.commons", name: "commons-lang3", version: "3.12.0" implementation group: "commons-io", name: "commons-io", version: "2.11.0" implementation group: "commons-cli", name: "commons-cli", version: "1.5.0" implementation "org.apache.commons:commons-collections4:4.4" implementation "org.apache.commons:commons-exec:1.3" // WPILib deps implementation wpilibTools.deps.wpilibJava("wpiutil") implementation wpilibTools.deps.wpilibJava("cameraserver") implementation wpilibTools.deps.wpilibJava("cscore") implementation wpilibTools.deps.wpilibJava("wpinet") implementation wpilibTools.deps.wpilibJava("wpimath") implementation wpilibTools.deps.wpilibJava("ntcore") implementation wpilibTools.deps.wpilibJava("hal") implementation wpilibTools.deps.wpilibJava("wpilibj") implementation "edu.wpi.first.thirdparty.frc2024.opencv:opencv-java:$openCVversion" implementation "edu.wpi.first.thirdparty.frc2024.opencv:opencv-jni:$openCVversion:$jniPlatform" implementation "org.ejml:ejml-simple:0.42" // test stuff testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" } workingDir = new File("${rootDir}") finalizedBy jacocoTestReport } task testHeadless(type: Test) { group = "verification" systemProperty("java.awt.headless", "true") useJUnitPlatform() exclude '**/*BenchmarkTest*' workingDir = "../" } task generateJavaDocs(type: Javadoc) { source = sourceSets.main.allJava classpath = sourceSets.main.compileClasspath destinationDir = file("${projectDir}/build/docs") } jacoco { toolVersion = "0.8.9" reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir') } jacocoTestReport { dependsOn testHeadless reports { xml.required = true csv.required = false html.outputLocation = layout.buildDirectory.dir('jacocoHtml') } afterEvaluate { classDirectories.setFrom(files(classDirectories.files.collect { fileTree(dir: it, exclude: "edu/wpi/**" ) })) } }