apply plugin: 'maven-publish' apply plugin: 'java' if (JavaVersion.current() == JavaVersion.VERSION_1_8) { apply plugin: 'net.ltgt.errorprone' } else { apply plugin: 'net.ltgt.errorprone-javacplugin' } def pubVersion if (project.hasProperty("publishVersion")) { pubVersion = project.publishVersion } else { pubVersion = WPILibVersion.version } def baseArtifactId = project.baseId def artifactGroupId = project.groupId def javaBaseName = "_GROUP_edu_wpi_first_${project.baseId}_ID_${project.baseId}-java_CLS" def outputsFolder = file("$project.buildDir/outputs") task sourcesJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } task outputJar(type: Jar, dependsOn: classes) { baseName javaBaseName destinationDir outputsFolder from sourceSets.main.output } task outputSourcesJar(type: Jar, dependsOn: classes) { baseName javaBaseName destinationDir outputsFolder classifier = 'sources' from sourceSets.main.allSource } task outputJavadocJar(type: Jar, dependsOn: javadoc) { baseName javaBaseName destinationDir outputsFolder classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar archives outputJar archives outputSourcesJar archives outputJavadocJar } addTaskToCopyAllOutputs(outputSourcesJar) addTaskToCopyAllOutputs(outputJavadocJar) addTaskToCopyAllOutputs(outputJar) build.dependsOn outputSourcesJar build.dependsOn outputJavadocJar build.dependsOn outputJar project(':').libraryBuild.dependsOn build publishing { publications { java(MavenPublication) { artifact jar artifact sourcesJar artifact javadocJar artifactId = "${baseArtifactId}-java" groupId artifactGroupId version pubVersion } } } test { useJUnitPlatform() systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true' testLogging { events "failed" exceptionFormat "full" } } if (project.hasProperty('onlyAthena')) { test.enabled = false } repositories { mavenCentral() } sourceSets { dev } compileJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.2.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.2.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.2.0' devCompile sourceSets.main.output errorprone 'com.google.errorprone:error_prone_core:2.3.1' } task run(type: JavaExec) { classpath = sourceSets.dev.runtimeClasspath main = project.devMain } build.dependsOn devClasses