@@ -4,13 +4,13 @@ import com.github.sherter.googlejavaformatgradleplugin.GoogleJavaFormatExtension
44import com.google.common.collect.ImmutableList
55import com.google.common.collect.ImmutableMap
66import java.io.File
7- import java.nio.file.Paths
87import org.gradle.api.Plugin
98import org.gradle.api.Project
109import org.gradle.api.attributes.Attribute
1110import org.gradle.api.plugins.JavaPluginConvention
1211import org.gradle.api.publish.PublishingExtension
1312import org.gradle.api.publish.maven.MavenPublication
13+ import org.gradle.kotlin.dsl.getPlugin
1414import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1515
1616class FirebaseJavaLibraryPlugin : Plugin <Project > {
@@ -38,40 +38,13 @@ class FirebaseJavaLibraryPlugin : Plugin<Project> {
3838 }
3939
4040 private fun setupApiInformationAnalysis (project : Project ) {
41- val mainSourceSet =
42- project.convention.getPlugin(JavaPluginConvention ::class .java).sourceSets.getByName(" main" )
43- val outputFile =
44- project.rootProject.file(
45- Paths .get(
46- project.rootProject.buildDir.path,
47- " apiinfo" ,
48- project.path.substring(1 ).replace(" :" , " _" )
49- )
50- )
51- val outputApiFile = File (outputFile.absolutePath + " _api.txt" )
52- val apiTxt =
53- if (project.file(" api.txt" ).exists()) project.file(" api.txt" )
54- else project.file(project.rootDir.toString() + " /empty-api.txt" )
55- val apiInfo =
56- project.tasks.register(" apiInformation" , ApiInformationTask ::class .java) {
57- sources.value(project.provider { mainSourceSet.java.srcDirs })
58- apiTxtFile.set(apiTxt)
59- baselineFile.set(project.file(" baseline.txt" ))
60- this .outputFile.set(outputFile)
61- this .outputApiFile.set(outputApiFile)
62- updateBaseline.set(project.hasProperty(" updateBaseline" ))
63- }
64- val generateApiTxt =
65- project.tasks.register(" generateApiTxtFile" , GenerateApiTxtTask ::class .java) {
66- sources.value(project.provider { mainSourceSet.java.srcDirs })
67- apiTxtFile.set(project.file(" api.txt" ))
68- baselineFile.set(project.file(" baseline.txt" ))
69- updateBaseline.set(project.hasProperty(" updateBaseline" ))
70- }
71- val docStubs =
72- project.tasks.register(" docStubs" , GenerateStubsTask ::class .java) {
73- sources.value(project.provider { mainSourceSet.java.srcDirs })
74- }
41+ val srcDirs =
42+ project.convention.getPlugin<JavaPluginConvention >().sourceSets.getByName(" main" ).java.srcDirs
43+
44+ val apiInfo = getApiInfo(project, srcDirs)
45+ val generateApiTxt = getGenerateApiTxt(project, srcDirs)
46+ val docStubs = getDocStubs(project, srcDirs)
47+
7548 project.tasks.getByName(" check" ).dependsOn(docStubs)
7649 project.afterEvaluate {
7750 val classpath =
@@ -88,6 +61,7 @@ class FirebaseJavaLibraryPlugin : Plugin<Project> {
8861 docStubs.configure { classPath = classpath }
8962 }
9063 }
64+
9165 private fun configurePublishing (project : Project , firebaseLibrary : FirebaseLibraryExtension ) {
9266 project.apply (ImmutableMap .of(" plugin" , " maven-publish" ))
9367 val publishing = project.extensions.getByType(PublishingExtension ::class .java)
0 commit comments