blob: d83ead2c6e802235059469f22f0b0d75f29ea795 [file] [log] [blame]
Brian Silverman8fce7482020-01-05 13:18:21 -08001apply plugin: 'maven-publish'
2apply plugin: 'java-library'
3//apply plugin: 'net.ltgt.errorprone'
4apply plugin: 'jacoco'
5
6def baseArtifactId = project.baseId
7def artifactGroupId = project.groupId
8def javaBaseName = "_GROUP_edu_wpi_first_${project.baseId}_ID_${project.baseId}-java_CLS"
9
10def outputsFolder = file("$project.buildDir/outputs")
11
12task sourcesJar(type: Jar, dependsOn: classes) {
13 classifier = 'sources'
14 from sourceSets.main.allSource
15}
16
17task javadocJar(type: Jar, dependsOn: javadoc) {
18 classifier = 'javadoc'
19 from javadoc.destinationDir
20}
21
22task outputJar(type: Jar, dependsOn: classes) {
23 archiveBaseName = javaBaseName
24 destinationDirectory = outputsFolder
25 from sourceSets.main.output
26}
27
28task outputSourcesJar(type: Jar, dependsOn: classes) {
29 archiveBaseName = javaBaseName
30 destinationDirectory = outputsFolder
31 classifier = 'sources'
32 from sourceSets.main.allSource
33}
34
35task outputJavadocJar(type: Jar, dependsOn: javadoc) {
36 archiveBaseName = javaBaseName
37 destinationDirectory = outputsFolder
38 classifier = 'javadoc'
39 from javadoc.destinationDir
40}
41
42artifacts {
43 archives sourcesJar
44 archives javadocJar
45 archives outputJar
46 archives outputSourcesJar
47 archives outputJavadocJar
48}
49
50addTaskToCopyAllOutputs(outputSourcesJar)
51addTaskToCopyAllOutputs(outputJavadocJar)
52addTaskToCopyAllOutputs(outputJar)
53
54build.dependsOn outputSourcesJar
55build.dependsOn outputJavadocJar
56build.dependsOn outputJar
57
58project(':').libraryBuild.dependsOn build
59
60publishing {
61 publications {
62
63 java(MavenPublication) {
64 artifact jar
65 artifact sourcesJar
66 artifact javadocJar
67
68 artifactId = "${baseArtifactId}-java"
69 groupId artifactGroupId
70 version wpilibVersioning.version.get()
71 }
72 }
73}
74
75test {
76 useJUnitPlatform()
77 systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true'
78 testLogging {
79 events "failed"
80 exceptionFormat "full"
81 }
82 finalizedBy jacocoTestReport
83}
84
85if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxraspbian') || project.hasProperty('onlylinuxaarch64bionic')) {
86 test.enabled = false
87}
88
89repositories {
90 mavenCentral()
91 //maven.url "https://oss.sonatype.org/content/repositories/snapshots/"
92}
93
94sourceSets {
95 dev
96}
97
98tasks.withType(JavaCompile).configureEach {
99 options.compilerArgs = ['--release', '11']
100}
101
102dependencies {
103 testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
104 testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2'
105 testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
106
107 devImplementation sourceSets.main.output
108
109 //errorprone 'com.google.errorprone:error_prone_core:2.3.2-SNAPSHOT'
110 //errorproneJavac 'com.google.errorprone:error_prone_core:2.3.1'
111}
112
113task run(type: JavaExec) {
114 classpath = sourceSets.dev.runtimeClasspath
115
116 main = project.devMain
117}
118
119build.dependsOn devClasses
120
121jacoco {
122 toolVersion = "0.8.4"
123}
124
125jacocoTestReport {
126 reports {
127 xml.enabled true
128 html.enabled true
129 }
130}