Skip to content

Commit dff7fe6

Browse files
Merge pull request #9 from usefulness/add_maven_central_publishing
Fix Gradle Plugin Portal publication
2 parents 8a37c85 + 4ac2813 commit dff7fe6

File tree

3 files changed

+55
-37
lines changed

3 files changed

+55
-37
lines changed

.github/workflows/publish_release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,5 @@ jobs:
4141
- run: ./gradlew publishPlugins -Pgradle.publish.key=${{ secrets.gradle_publish_key }} -Pgradle.publish.secret=${{ secrets.gradle_publish_secret }}
4242

4343
- run: ./gradlew publishAllPublicationsToGithubRepository --no-configuration-cache
44+
45+
- run: ./gradlew publishAllPublicationsToMavenCentralRepository --no-configuration-cache

gradle/plugins/src/main/kotlin/PublishingPlugin.kt

Lines changed: 53 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,92 @@
1+
import com.vanniktech.maven.publish.MavenPublishBaseExtension
12
import org.gradle.api.Plugin
23
import org.gradle.api.Project
34
import org.gradle.api.plugins.ExtensionContainer
4-
import org.gradle.api.plugins.JavaPluginExtension
55
import org.gradle.api.publish.PublishingExtension
66
import org.gradle.jvm.tasks.Jar
77
import org.gradle.language.jvm.tasks.ProcessResources
88
import org.gradle.plugin.devel.GradlePluginDevelopmentExtension
9-
import org.gradle.plugins.signing.SigningExtension
109

1110
class PublishingPlugin : Plugin<Project> {
1211

1312
override fun apply(target: Project) = with(target) {
14-
pluginManager.apply("maven-publish")
13+
pluginManager.apply("com.vanniktech.maven.publish")
1514
pluginManager.apply("com.gradle.plugin-publish")
16-
if (findConfig("SIGNING_PASSWORD").isNotEmpty()) {
17-
pluginManager.apply("signing")
18-
}
19-
20-
extensions.configure<JavaPluginExtension> {
21-
withSourcesJar()
22-
withJavadocJar()
23-
}
15+
pluginManager.apply("org.jetbrains.dokka")
2416

2517
pluginManager.withPlugin("org.jetbrains.kotlin.jvm") {
26-
pluginManager.apply("org.jetbrains.dokka")
18+
tasks.named("processResources", ProcessResources::class.java) { processResources ->
19+
processResources.from(rootProject.file("LICENSE"))
20+
}
2721

28-
tasks.named("javadocJar", Jar::class.java) { javadocJar ->
22+
tasks.named { it == "javadocJar" }.withType(Jar::class.java).configureEach { javadocJar ->
2923
javadocJar.from(tasks.named("dokkaGeneratePublicationHtml"))
3024
}
31-
tasks.named("processResources", ProcessResources::class.java) { processResources ->
32-
processResources.from(rootProject.file("LICENSE.txt"))
25+
}
26+
27+
extensions.configure<MavenPublishBaseExtension> {
28+
publishToMavenCentral()
29+
coordinates(group.toString(), name, version.toString())
30+
31+
signAllPublications()
32+
33+
configureBasedOnAppliedPlugins()
34+
35+
pom { pom ->
36+
pom.name.set("${project.group}:${project.name}")
37+
pom.description.set(project.description)
38+
pom.url.set("https://github.com/usefulness/ktlint-gradle-plugin")
39+
pom.licenses { licenses ->
40+
licenses.license { license ->
41+
license.name.set("Apache-2.0")
42+
license.url.set("https://github.com/usefulness/ktlint-gradle-plugin/blob/master/LICENSE")
43+
}
44+
}
45+
pom.developers { developers ->
46+
developers.developer { developer ->
47+
developer.id.set("mateuszkwiecinski")
48+
developer.name.set("Mateusz Kwiecinski")
49+
developer.email.set("36954793+mateuszkwiecinski@users.noreply.github.com")
50+
}
51+
developers.developer { developer ->
52+
developer.id.set("jeremymailen")
53+
developer.name.set("Jeremy Mailen")
54+
}
55+
}
56+
pom.scm { scm ->
57+
scm.connection.set("scm:git:github.com/usefulness/keeper.git")
58+
scm.developerConnection.set("scm:git:ssh://github.com/usefulness/keeper.git")
59+
scm.url.set("https://github.com/usefulness/keeper/tree/master")
60+
}
3361
}
3462
}
3563

3664
extensions.configure<PublishingExtension> {
3765
with(repositories) {
3866
maven { maven ->
3967
maven.name = "github"
40-
maven.setUrl("https://maven.pkg.github.com/usefulness/keeper")
68+
maven.setUrl("https://github.com/usefulness/keeper/")
4169
with(maven.credentials) {
4270
username = "usefulness"
4371
password = findConfig("GITHUB_TOKEN")
4472
}
4573
}
4674
}
4775
}
48-
pluginManager.withPlugin("signing") {
49-
with(extensions.extraProperties) {
50-
set("signing.keyId", findConfig("SIGNING_KEY_ID"))
51-
set("signing.password", findConfig("SIGNING_PASSWORD"))
52-
set("signing.secretKeyRingFile", findConfig("SIGNING_SECRET_KEY_RING_FILE"))
53-
}
54-
55-
extensions.configure<SigningExtension>("signing") { signing ->
56-
if (findConfig("SIGNING_PASSWORD").isNotEmpty()) {
57-
signing.sign(extensions.getByType(PublishingExtension::class.java).publications)
76+
pluginManager.withPlugin("com.gradle.plugin-publish") {
77+
extensions.configure<GradlePluginDevelopmentExtension> {
78+
website.set("https://github.com/usefulness/keeper/")
79+
vcsUrl.set("https://github.com/usefulness/keeper.git")
80+
plugins.configureEach { plugin ->
81+
plugin.tags.set(listOf("android", "kotlin", "keeper", "proguard", "release", "android-test"))
82+
plugin.description = "A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources."
83+
plugin.displayName = "A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources."
5884
}
5985
}
6086
}
61-
62-
extensions.configure<GradlePluginDevelopmentExtension> {
63-
website.set("https://github.com/usefulness/keeper/")
64-
vcsUrl.set("https://github.com/usefulness/keeper.git")
65-
plugins.configureEach { plugin ->
66-
plugin.tags.set(listOf("android", "kotlin", "keeper", "proguard", "release", "android-test"))
67-
plugin.description = "A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources."
68-
}
69-
}
7087
}
7188

72-
private inline fun <reified T: Any> ExtensionContainer.configure(crossinline receiver: T.() -> Unit) {
89+
private inline fun <reified T : Any> ExtensionContainer.configure(crossinline receiver: T.() -> Unit) {
7390
configure(T::class.java) { receiver(it) }
7491
}
7592
}

keeper-gradle-plugin/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ gradlePlugin {
5959
plugins.create("keeper") {
6060
id = "io.github.usefulness.keeper"
6161
implementationClass = "com.slack.keeper.KeeperPlugin"
62-
displayName = "A Gradle plugin that infers Proguard/R8 keep rules for androidTest sources."
6362
}
6463
}
6564
}

0 commit comments

Comments
 (0)