build.gradle (2302B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 plugins { 6 id 'java' 7 alias(libs.plugins.spotless) 8 } 9 10 dependencies { 11 implementation files("${System.properties['java.home']}/../lib/tools.jar") 12 } 13 14 def javadocExecutable 15 switch (JavaVersion.current()) { 16 case JavaVersion.VERSION_1_7: 17 case JavaVersion.VERSION_1_8: 18 javadocExecutable = "${System.properties['java.home']}/../bin/javadoc" 19 break 20 21 case JavaVersion.VERSION_1_9: 22 case JavaVersion.VERSION_1_10: 23 case JavaVersion.VERSION_11: 24 case JavaVersion.VERSION_12: 25 case JavaVersion.VERSION_13: 26 case JavaVersion.VERSION_14: 27 case JavaVersion.VERSION_15: 28 case JavaVersion.VERSION_16: 29 case JavaVersion.VERSION_17: 30 case JavaVersion.VERSION_18: 31 case JavaVersion.VERSION_19: 32 case JavaVersion.VERSION_20: 33 case JavaVersion.VERSION_21: 34 case JavaVersion.VERSION_HIGHER: 35 javadocExecutable = "${System.properties['java.home']}/bin/javadoc" 36 break 37 38 default: 39 throw new GradleException("Java version '" + JavaVersion.current() + "' not supported") 40 } 41 42 task testApiDoclet(type: Exec) { 43 workingDir '.' 44 commandLine 'python3', file('src/test/resources/apidoc_test.py'), 45 '--javadoc', javadocExecutable, 46 '--doclet-jar', jar.outputs.files.singleFile.absolutePath, 47 '--java-root', file('src/test/fake_root'), 48 '--out-dir', "${buildDir}/tmp", 49 '--expected', file('src/test/resources/expected-doclet-output.txt'), 50 '--expected-map', file('src/test/resources/expected-map-output.txt') 51 } 52 53 testApiDoclet.dependsOn jar 54 55 test.dependsOn testApiDoclet 56 57 task sourcesJar(type: Jar) { 58 from sourceSets.main.allJava 59 archiveClassifier = 'sources' 60 } 61 62 task javadocJar(type: Jar, dependsOn: javadoc) { 63 from javadoc.destinationDir 64 archiveClassifier = 'javadoc' 65 } 66 67 group = 'org.mozilla.apilint' 68 69 spotless { 70 lineEndings = com.diffplug.spotless.LineEnding.UNIX 71 java { 72 googleJavaFormat(libs.versions.google.java.format.get()) 73 } 74 } 75 76 test.dependsOn tasks.findByName("spotlessCheck") 77 78 configurations { 79 docletJar 80 } 81 82 artifacts { 83 docletJar jar 84 }