Skip to content

Commit 2f5f6f3

Browse files
committed
Resolve comments
1 parent 3c2fdf5 commit 2f5f6f3

File tree

1 file changed

+33
-41
lines changed

1 file changed

+33
-41
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/FireEscapeArtifactPlugin.kt

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,77 +14,69 @@
1414

1515
package com.google.firebase.gradle.plugins
1616

17-
import java.io.File
1817
import org.gradle.api.Plugin
1918
import org.gradle.api.Project
2019
import org.gradle.api.Task
2120
import org.gradle.api.publish.PublishingExtension
2221
import org.gradle.api.publish.maven.MavenPublication
2322
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
23+
import org.gradle.api.tasks.TaskProvider
2424
import org.gradle.api.tasks.bundling.Jar
2525
import org.gradle.api.tasks.bundling.Zip
26+
import org.gradle.kotlin.dsl.configure
27+
import org.gradle.kotlin.dsl.getByName
28+
import org.gradle.kotlin.dsl.register
2629

2730
class FireEscapeArtifactPlugin : Plugin<Project> {
28-
var project: Project? = null
2931

3032
override fun apply(target: Project) {
31-
project = target
33+
target.afterEvaluate {
34+
if (supportsMavenPublishing(target)) {
35+
val apiTxtFile = registerApiTxtFileTask(project)
36+
val proguardMappingFile = registerProguardMappingFileTask(project)
37+
val javadoc = registerJavadocTask(project)
3238

33-
project!!.afterEvaluate {
34-
val firebaseLibrary = extensions.findByType(FirebaseLibraryExtension::class.java)
35-
val fireEscapeTask =
36-
tasks.create("mavenAarFireEscapeArtifact", Zip::class.java) { classifier = "fireescape" }
37-
plugins.withType(MavenPublishPlugin::class.java) {
38-
extensions.configure(PublishingExtension::class.java) {
39-
publications.withType(MavenPublication::class.java) {
40-
if ("mavenAar" == name) {
41-
configurePublication(this, fireEscapeTask, firebaseLibrary!!.type)
39+
val zippedArtifact =
40+
project.tasks.register<Zip>("maven") {
41+
from(apiTxtFile)
42+
if (project.isAndroid()) {
43+
from(proguardMappingFile)
4244
}
4345
}
46+
47+
extensions.configure<PublishingExtension> {
48+
publications.getByName<MavenPublication>("mavenAar") {
49+
artifact(zippedArtifact)
50+
artifact(javadoc)
51+
}
4452
}
4553
}
4654
}
4755
}
48-
49-
private fun configurePublication(
50-
publication: MavenPublication,
51-
artifactTask: Zip,
52-
libraryType: LibraryType
53-
) {
54-
publication.artifact(artifactTask)
55-
artifactTask.from(apiTxtFileTask())
56-
if (libraryType == LibraryType.ANDROID) {
57-
artifactTask.from(proguardMappingFileTask())
58-
}
59-
publication.artifact(javadocTask())
56+
private fun supportsMavenPublishing(project: Project): Boolean {
57+
return project.plugins.hasPlugin(MavenPublishPlugin::class.java)
6058
}
6159

62-
private fun proguardMappingFileTask(): Task? {
63-
return project?.tasks?.create("fireEscapeProguardMapping") {
64-
val task = this
65-
project.tasks.all {
66-
if (name == "assembleRelease") {
67-
task.dependsOn(this)
68-
}
69-
}
70-
outputs.file(File(project.buildDir, "outputs/mapping/release/mapping.txt"))
60+
private fun registerProguardMappingFileTask(project: Project): TaskProvider<Task> {
61+
return project.tasks.register("fireEscapeProguardMapping") {
62+
outputs.file(project.fileFromBuildDir("outputs/mapping/release/mapping.txt"))
7163
}
7264
}
7365

74-
private fun apiTxtFileTask(): Task? {
75-
return project?.tasks?.create("fireEscapeApiText") {
66+
private fun registerApiTxtFileTask(project: Project): TaskProvider<Task> {
67+
return project.tasks.register("fireEscapeApiText") {
7668
dependsOn(JAVADOC_TASK_NAME)
77-
outputs.file(File(project.buildDir, "tmp/javadoc/api.txt"))
69+
outputs.file(project.fileFromBuildDir("tmp/javadoc/api.txt"))
7870
}
7971
}
8072

81-
private fun javadocTask(): Task? {
82-
return project?.tasks?.create("fireescapeJavadocJar", Jar::class.java) {
73+
private fun registerJavadocTask(project: Project): TaskProvider<Jar> {
74+
return project.tasks.register<Jar>("fireescapeJavadocJar") {
8375
dependsOn(JAVADOC_TASK_NAME)
84-
from(File(project.buildDir, "/docs/javadoc/reference"))
76+
project.fileFromBuildDir("/docs/javadoc/reference")
8577
include("**/*")
86-
archiveName = "fireescape-javadoc.jar"
87-
classifier = "javadoc"
78+
archiveFileName.set("fireescape-javadoc.jar")
79+
archiveClassifier.set("javadoc")
8880
}
8981
}
9082
}

0 commit comments

Comments
 (0)