Files
allwpilib/shared/java/javacommon.gradle

148 lines
3.5 KiB
Groovy
Raw Normal View History

2018-04-29 13:29:07 -07:00
apply plugin: 'maven-publish'
2019-11-12 17:14:04 -08:00
apply plugin: 'java-library'
2019-06-28 23:01:02 -04:00
apply plugin: 'jacoco'
2018-04-29 13:29:07 -07:00
def baseArtifactId = project.baseId
def artifactGroupId = project.groupId
def javaBaseName = "_GROUP_${project.groupId.replace('.', '_')}_ID_${project.baseId}-java_CLS"
2018-04-29 13:29:07 -07:00
def outputsFolder = file("$project.buildDir/outputs")
task sourcesJar(type: Jar, dependsOn: classes) {
2023-05-12 21:27:31 -07:00
archiveClassifier = 'sources'
2018-04-29 13:29:07 -07:00
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
2023-05-12 21:27:31 -07:00
archiveClassifier = 'javadoc'
2018-04-29 13:29:07 -07:00
from javadoc.destinationDir
}
task outputJar(type: Jar, dependsOn: classes) {
2019-11-12 17:14:04 -08:00
archiveBaseName = javaBaseName
destinationDirectory = outputsFolder
2018-04-29 13:29:07 -07:00
from sourceSets.main.output
}
task outputSourcesJar(type: Jar, dependsOn: classes) {
2019-11-12 17:14:04 -08:00
archiveBaseName = javaBaseName
destinationDirectory = outputsFolder
2023-05-12 21:27:31 -07:00
archiveClassifier = 'sources'
2018-04-29 13:29:07 -07:00
from sourceSets.main.allSource
}
task outputJavadocJar(type: Jar, dependsOn: javadoc) {
2019-11-12 17:14:04 -08:00
archiveBaseName = javaBaseName
destinationDirectory = outputsFolder
2023-05-12 21:27:31 -07:00
archiveClassifier = 'javadoc'
2018-04-29 13:29:07 -07:00
from javadoc.destinationDir
}
artifacts {
tasks.named("assemble") {
dependsOn(sourcesJar)
dependsOn(javadocJar)
dependsOn(outputJar)
dependsOn(outputSourcesJar)
dependsOn(outputJavadocJar)
}
2018-04-29 13:29:07 -07:00
}
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 = wpilibVersioning.version.get()
2018-04-29 13:29:07 -07:00
}
}
}
test {
jvmArgs '--enable-native-access=ALL-UNNAMED'
useJUnitPlatform()
systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true'
2018-04-29 13:29:07 -07:00
testLogging {
events "failed"
exceptionFormat = "full"
2018-04-29 13:29:07 -07:00
}
2019-06-28 23:01:02 -04:00
finalizedBy jacocoTestReport
2018-04-29 13:29:07 -07:00
}
if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxsystemcore') || project.hasProperty('onlylinuxarm32') || project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64')) {
2018-04-29 13:29:07 -07:00
test.enabled = false
}
repositories {
2022-05-08 13:59:58 -07:00
maven {
url = 'https://frcmaven.wpi.edu/artifactory/ex-mvn'
}
//maven.url "https://oss.sonatype.org/content/repositories/snapshots/"
2018-04-29 13:29:07 -07:00
}
sourceSets {
dev
}
configurations {
devImplementation.extendsFrom(implementation)
}
tasks.withType(JavaCompile).configureEach {
options.compilerArgs = [
'--release',
'21',
'-encoding',
'UTF8',
"-Werror",
"-Xlint:all",
// ignore AutoCloseable warnings
"-Xlint:-try",
// ignore missing serialVersionUID warnings
"-Xlint:-serial",
// ignore unclaimed annotation warning from annotation processing
"-Xlint:-processing",
]
2018-04-29 13:29:07 -07:00
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
2019-11-12 17:14:04 -08:00
devImplementation sourceSets.main.output
2018-04-29 13:29:07 -07:00
}
task run(type: JavaExec) {
classpath = sourceSets.dev.runtimeClasspath
mainClass = project.devMain
2018-04-29 13:29:07 -07:00
}
build.dependsOn devClasses
2019-06-28 23:01:02 -04:00
jacoco {
toolVersion = "0.8.13"
2019-06-28 23:01:02 -04:00
}
jacocoTestReport {
reports {
xml.required = true
html.required = true
2019-06-28 23:01:02 -04:00
}
}