diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1edc651..caa38f4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] kgp = "2.3.0" -nmcp = "1.4.2" +nmcp = "1.4.3" +nmcp-build-time = "1.4.4-SNAPSHOT-7b0410ef4061d1249c7b161698764b8194838354" mosaic = "0.18.0" [libraries] @@ -16,7 +17,7 @@ coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0" dokka = "org.jetbrains.dokka:dokka-gradle-plugin:2.1.0-Beta" google-auth = "com.google.auth:google-auth-library-oauth2-http:1.19.0" gradle-api = "dev.gradleplugins:gradle-api:8.8" -gratatouille-gradle-plugin = "com.gradleup.gratatouille:com.gradleup.gratatouille.gradle.plugin:0.2.0" +gratatouille-gradle-plugin = "com.gradleup.gratatouille:com.gradleup.gratatouille.gradle.plugin:0.2.2" inquirer = "com.github.kotlin-inquirer:kotlin-inquirer:0.1.0" jansi = "org.fusesource.jansi:jansi:2.4.0" jsonpath = "com.eygraber:jsonpathkt-kotlinx:3.0.2" @@ -31,7 +32,7 @@ mordant = "com.github.ajalt.mordant:mordant:2.7.1" mosaic-runtime = { module = "com.jakewharton.mosaic:mosaic-runtime", version.ref = "mosaic" } nmcp = { module = "com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin", version.ref = "nmcp" } nmcp-tasks = { module = "com.gradleup.nmcp:nmcp-tasks", version.ref = "nmcp" } -nmcp-build-time = "com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin:1.2.0-SNAPSHOT-b2b859946a8e9938f7b7f22003e9dc029aac69af" +nmcp-build-time = { module = "com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin", version.ref = "nmcp-build-time" } okhttp = "com.squareup.okhttp3:okhttp:4.12.0" serialization-gradle-plugin = {module = "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin", version.ref = "kgp"} serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.0" diff --git a/librarian-gradle-plugin/api/librarian-gradle-plugin.api b/librarian-gradle-plugin/api/librarian-gradle-plugin.api index 52b6df8..84afbe3 100644 --- a/librarian-gradle-plugin/api/librarian-gradle-plugin.api +++ b/librarian-gradle-plugin/api/librarian-gradle-plugin.api @@ -148,7 +148,7 @@ public final class com/gradleup/librarian/gradle/internal/Project_androidKt { } public final class com/gradleup/librarian/gradle/internal/Publishing_androidKt { - public static final fun createAndroidPublication (Lorg/gradle/api/Project;Ljava/lang/String;)V + public static final fun createAndroidPublication (Lorg/gradle/api/Project;Ljava/lang/String;Lorg/gradle/api/tasks/TaskProvider;)V } public final class com/gradleup/librarian/gradle/internal/task/GenerateMarkerFilesEntryPoint { diff --git a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/internal/publishing.android.kt b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/internal/publishing.android.kt index 585d0bc..a5890e4 100644 --- a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/internal/publishing.android.kt +++ b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/internal/publishing.android.kt @@ -3,12 +3,12 @@ package com.gradleup.librarian.gradle.internal import com.android.build.api.dsl.LibraryExtension import com.android.build.gradle.tasks.SourceJarTask import com.gradleup.librarian.gradle.LIBRARIAN_GENERATE_VERSION -import com.gradleup.librarian.gradle.internal.androidExtension import org.gradle.api.Project import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication +import org.gradle.api.tasks.TaskProvider -fun Project.createAndroidPublication(variantName: String) { +fun Project.createAndroidPublication(variantName: String, javadocTaskProvider: TaskProvider<*>) { val android = androidExtension check (android is LibraryExtension) { "Librarian: cannot publish non-library project" @@ -23,6 +23,7 @@ fun Project.createAndroidPublication(variantName: String) { publications.register("default", MavenPublication::class.java) { publication -> afterEvaluate { publication.from(components.getByName(variantName)) + publication.artifact(javadocTaskProvider) } } } diff --git a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/publishing.kt b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/publishing.kt index d8c8164..0d63fd1 100644 --- a/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/publishing.kt +++ b/librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/publishing.kt @@ -161,15 +161,6 @@ private fun Project.emptyJavadoc(repositoryUrl: String?): TaskProvider { } } -private fun Project.javaSources(): TaskProvider { - return tasks.register("librarianSources", Jar::class.java) { - it.archiveClassifier.set("sources") - - val sourceSets = project.extensions.getByType(JavaPluginExtension::class.java).sourceSets - it.from(sourceSets.getByName("main").allSource) - } -} - /** * Creates missing publications based on the plugins being applied and the tasks found in the project. * @@ -186,6 +177,9 @@ fun Project.createMissingPublications( ) = configurePublishingInternal { val emptyJavadoc = emptyJavadoc(docUrl) + val javaPluginExtension = project.extensions.findByType(JavaPluginExtension::class.java) + javaPluginExtension?.withSourcesJar() + when { project.plugins.hasPlugin("org.jetbrains.kotlin.multiplatform") -> { /** @@ -212,17 +206,12 @@ fun Project.createMissingPublications( // Only add sources and javadoc for the main publication if (!it.name.endsWith("PluginMarkerMaven")) { it.artifact(emptyJavadoc) - it.artifact(javaSources()) } } } hasAndroid -> { - createAndroidPublication("release") - - publications.withType(MavenPublication::class.java) { - it.artifact(emptyJavadoc) - } + createAndroidPublication("release", emptyJavadoc) } extensions.findByName("java") != null -> { @@ -230,7 +219,6 @@ fun Project.createMissingPublications( it.from(components.findByName("java")) it.artifact(emptyJavadoc) - it.artifact(javaSources()) } } }