Skip to content

Commit 2a63b8e

Browse files
committed
Migrate FireEscapeArtifactPlugin to kotlin
1 parent 72b228d commit 2a63b8e

File tree

2 files changed

+76
-132
lines changed

2 files changed

+76
-132
lines changed

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

Lines changed: 0 additions & 132 deletions
This file was deleted.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.google.firebase.gradle.plugins
2+
3+
import java.io.File
4+
import org.gradle.api.Plugin
5+
import org.gradle.api.Project
6+
import org.gradle.api.Task
7+
import org.gradle.api.publish.PublishingExtension
8+
import org.gradle.api.publish.maven.MavenPublication
9+
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
10+
import org.gradle.api.tasks.bundling.Jar
11+
import org.gradle.api.tasks.bundling.Zip
12+
13+
class FireEscapeArtifactPlugin : Plugin<Project> {
14+
var project: Project? = null
15+
16+
override fun apply(target: Project) {
17+
project = target
18+
19+
project!!.afterEvaluate {
20+
val firebaseLibrary = extensions.findByType(FirebaseLibraryExtension::class.java)
21+
val fireEscapeTask =
22+
tasks.create("mavenAarFireEscapeArtifact", Zip::class.java) { classifier = "fireescape" }
23+
plugins.withType(MavenPublishPlugin::class.java) {
24+
extensions.configure(PublishingExtension::class.java) {
25+
publications.withType(MavenPublication::class.java) {
26+
if ("mavenAar" == name) {
27+
configurePublication(this, fireEscapeTask, firebaseLibrary!!.type)
28+
}
29+
}
30+
}
31+
}
32+
}
33+
}
34+
35+
private fun configurePublication(
36+
publication: MavenPublication,
37+
artifactTask: Zip,
38+
libraryType: LibraryType
39+
) {
40+
publication.artifact(artifactTask)
41+
artifactTask.from(apiTxtFileTask())
42+
if (libraryType == LibraryType.ANDROID) {
43+
artifactTask.from(proguardMappingFileTask())
44+
}
45+
publication.artifact(javadocTask())
46+
}
47+
48+
private fun proguardMappingFileTask(): Task? {
49+
return project?.tasks?.create("fireEscapeProguardMapping") {
50+
val task = this
51+
project.tasks.all {
52+
if (name == "assembleRelease") {
53+
task.dependsOn(this)
54+
}
55+
}
56+
outputs.file(File(project.buildDir, "outputs/mapping/release/mapping.txt"))
57+
}
58+
}
59+
60+
private fun apiTxtFileTask(): Task? {
61+
return project?.tasks?.create("fireEscapeApiText") {
62+
dependsOn(JAVADOC_TASK_NAME)
63+
outputs.file(File(project.buildDir, "tmp/javadoc/api.txt"))
64+
}
65+
}
66+
67+
private fun javadocTask(): Task? {
68+
return project?.tasks?.create("fireescapeJavadocJar", Jar::class.java) {
69+
dependsOn(JAVADOC_TASK_NAME)
70+
from(File(project.buildDir, "/docs/javadoc/reference"))
71+
include("**/*")
72+
archiveName = "fireescape-javadoc.jar"
73+
classifier = "javadoc"
74+
}
75+
}
76+
}

0 commit comments

Comments
 (0)