plugins { id 'java' id 'com.github.johnrengelman.shadow' version '5.2.0' id "com.diffplug.gradle.spotless" version "3.28.0" id "application" } group 'org.photonvision' version '2020.6.1' mainClassName = "org.photonvision.server.Main" sourceCompatibility = 11 repositories { jcenter() mavenCentral() maven { url = 'https://frcmaven.wpi.edu:443/artifactory/development' } } ext { wpilibVersion = '2020.3.2-75-g1557a4c' openCVVersion = '3.4.7-2' } dependencies { implementation "io.javalin:javalin:3.7.0" implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.0" implementation "com.fasterxml.jackson.core:jackson-core:2.10.0" implementation "com.fasterxml.jackson.core:jackson-databind:2.10.0" implementation "org.msgpack:msgpack-core:0.8.20" implementation "org.msgpack:jackson-dataformat-msgpack:0.8.20" implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' implementation "org.apache.commons:commons-math3:3.6.1" implementation group: 'commons-io', name: 'commons-io', version: '2.6' implementation "org.apache.commons:commons-collections4:4.4" implementation "org.apache.commons:commons-exec:1.3" // wpilib stuff implementation "edu.wpi.first.wpiutil:wpiutil-java:$wpilibVersion" implementation "edu.wpi.first.cameraserver:cameraserver-java:$wpilibVersion" implementation "edu.wpi.first.cscore:cscore-java:$wpilibVersion" compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxaarch64bionic" compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxraspbian" compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:linuxx86-64" compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:osxx86-64" compile "edu.wpi.first.cscore:cscore-jni:$wpilibVersion:windowsx86-64" implementation "edu.wpi.first.ntcore:ntcore-java:$wpilibVersion" compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxaarch64bionic" compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxraspbian" compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:linuxx86-64" compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:osxx86-64" compile "edu.wpi.first.ntcore:ntcore-jni:$wpilibVersion:windowsx86-64" implementation "edu.wpi.first.thirdparty.frc2020.opencv:opencv-java:$openCVVersion" compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxaarch64bionic" compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxraspbian" compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:linuxx86-64" compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:osxx86-64" compile "edu.wpi.first.thirdparty.frc2020.opencv:opencv-jni:$openCVVersion:windowsx86-64" compile "org.slf4j:slf4j-simple:1.8.0-beta4" // test stuff testImplementation('org.junit.jupiter:junit-jupiter:5.6.0') } shadowJar { configurations = [project.configurations.runtimeClasspath] archiveFileName.set("photonvision-${project.version}.jar") } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" } } task testHeadless(type: Test) { group = 'verification' systemProperty("java.awt.headless", "true") useJUnitPlatform() } task runNpmOnClient(type: Exec) { workingDir "${projectDir}/../photon-client" if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) { commandLine 'cmd', '/c', 'npm run build' } else { commandLine 'npm run build' } } task copyClientUIToResources(type: Copy) { from "${projectDir}/../photon-client/dist/" into "${projectDir}/src/main/resources/web/" } task buildAndCopyUI {} buildAndCopyUI.dependsOn copyClientUIToResources copyClientUIToResources.dependsOn runNpmOnClient copyClientUIToResources.shouldRunAfter runNpmOnClient spotless { java { googleJavaFormat() paddedCell() indentWithTabs(2) indentWithSpaces(4) removeUnusedImports() } }