Skip to content

Commit

Permalink
fix: fix the plugin forgetting the dependencies of Java projects (#1287)
Browse files Browse the repository at this point in the history
  • Loading branch information
DanySK authored Jan 9, 2025
1 parent 0bd0bad commit 636752f
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,16 @@ import org.danilopianini.gradle.mavencentral.MavenConfigurationSupport.configure
import org.danilopianini.gradle.mavencentral.ProjectExtensions.registerTaskIfNeeded
import org.danilopianini.gradle.mavencentral.ProjectExtensions.setupMavenCentralPortal
import org.danilopianini.gradle.mavencentral.tasks.JavadocJar
import org.danilopianini.gradle.mavencentral.tasks.SourceJar
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.file.CopySpec
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
import org.gradle.api.tasks.javadoc.Javadoc
import org.gradle.jvm.component.internal.DefaultJvmSoftwareComponent
import org.gradle.jvm.tasks.Jar
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.create
Expand All @@ -40,8 +39,6 @@ class PublishOnCentral : Plugin<Project> {
private const val PUBLICATION_NAME = "OSSRH"

private fun Project.javadocJarTask() = project.registerTaskIfNeeded("javadocJar", JavadocJar::class)

private fun Project.sourcesJarTask() = project.registerTaskIfNeeded("sourcesJar", SourceJar::class)
}

override fun apply(project: Project) {
Expand All @@ -65,21 +62,14 @@ class PublishOnCentral : Plugin<Project> {
publications { publications ->
if (publications.none { it.name == PUBLICATION_NAME }) {
publications.register(PUBLICATION_NAME, MavenPublication::class.java) { publication ->
publication.artifact(project.tasks.withType<Jar>().named("jar"))
val javadocJarTask = project.javadocJarTask()
javadocJarTask.configure {
if (it is JavadocJar) {
it.from(project.tasks.withType<Javadoc>())
}
}
publication.artifact(javadocJarTask)
javadocJarTask.configure {
if (it is CopySpec) {
it.duplicatesStrategy = DuplicatesStrategy.INCLUDE
val componentProvider =
project.components.withType<DefaultJvmSoftwareComponent>().named(
"java",
) { javaComponent ->
javaComponent.withJavadocJar()
javaComponent.withSourcesJar()
}
}
val sourcesJar = project.sourcesJarTask()
publication.artifact(sourcesJar)
publication.from(componentProvider.get())
publication.pom.packaging = "jar"
}
project.logger.debug("Created new publication $PUBLICATION_NAME")
Expand Down Expand Up @@ -116,7 +106,8 @@ class PublishOnCentral : Plugin<Project> {
project.logger.info("Dokka plugin found, hence javadocJar will be configured")
project.tasks.withType<Javadoc>().configureEach { it.enabled = false }
project.tasks.withType<Jar>().matching { "javadoc" in it.name }.configureEach { javadocJar ->
javadocJar.from(project.tasks.withType<DokkaGenerateTask>())
javadocJar.duplicatesStrategy = DuplicatesStrategy.WARN
javadocJar.from(project.tasks.withType<DokkaGenerateTask>().matching { "Publication" in it.name })
javadocJar.from(
project.tasks.withType<DokkaTask>().matching { it.name.contains("html", ignoreCase = true) },
)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ publishOnCentral {
}
}

dependencies {
api("org.apache.commons:commons-lang3:3.17.0")
}

tasks.withType<Sign>().configureEach {
enabled = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ tests:
- '\s*<connection>(\s|\n)*scm:git:https://github\.com/test/test-publish-on-central</connection>'
- '\s*<developerConnection>(\s|\n)*scm:git:https://github\.com/test/test-publish-on-central</developerConnection>'
- '\s*</scm>'
- '\s*<dependencies>'
- '\s*<groupId>org.apache.commons</groupId>'
- description: "release and drop tasks get generated"
configuration:
tasks:
Expand Down

0 comments on commit 636752f

Please sign in to comment.