Skip to content

Commit 0143b44

Browse files
committed
fix(buildSrc): add sources Jar generation for JVM projects
Tested locally by publishing to the local Maven repo and manually verifying that the source Jars were published Resolves #28
1 parent 31e2c0c commit 0143b44

File tree

1 file changed

+22
-27
lines changed

1 file changed

+22
-27
lines changed

buildSrc/src/main/kotlin/io/github/edricchan03/plugin/library/LibraryPlugin.kt

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository
2121
import org.gradle.api.attributes.DocsType
2222
import org.gradle.api.logging.Logging
2323
import org.gradle.api.plugins.BasePlugin
24+
import org.gradle.api.plugins.JavaPluginExtension
2425
import org.gradle.api.provider.Property
2526
import org.gradle.api.provider.Provider
2627
import org.gradle.api.publish.PublicationContainer
@@ -394,10 +395,12 @@ class LibraryPlugin : Plugin<Project> {
394395
setConventions()
395396
setKmpConventions(project)
396397
}
398+
397399
// Kotlin/JVM
398-
extensions.findByType<KotlinJvmProjectExtension>()?.apply {
399-
setConventions()
400-
setJvmConventions()
400+
extensions.findByType<KotlinJvmProjectExtension>()?.setConventions()
401+
// Java Libraries
402+
extensions.findByType<JavaPluginExtension>()?.apply {
403+
withSourcesJar()
401404
}
402405

403406
// Dokka
@@ -524,25 +527,23 @@ class LibraryPlugin : Plugin<Project> {
524527
return
525528
}
526529

527-
project.afterEvaluate {
528-
logger.info("Setting up default publication")
529-
530-
publications {
531-
maybeCreate(
532-
extension.mavenPublishing.jvmPublicationName.get(),
533-
MavenPublication::class
534-
).apply {
535-
pom.setConventions(project, extension)
536-
537-
extension.mavenPublishing.jvmPublicationComponent.ifPresentOrElse(
538-
ifPresent = { from(it) },
539-
ifNotPresent = { from(components["java"]) }
540-
)
530+
logger.info("Setting up default JVM publication for ${project.name}")
541531

542-
// Add Javadocs as an artifact
543-
artifact(tasks[computeJavadocTaskName(isHtml = false)])
544-
artifact(tasks[computeJavadocTaskName(isHtml = true)])
545-
}
532+
publications {
533+
maybeCreate(
534+
extension.mavenPublishing.jvmPublicationName.get(),
535+
MavenPublication::class
536+
).apply {
537+
pom.setConventions(project, extension)
538+
539+
extension.mavenPublishing.jvmPublicationComponent.ifPresentOrElse(
540+
ifPresent = { from(it) },
541+
ifNotPresent = { from(project.components["java"]) }
542+
)
543+
544+
// Add Javadocs as an artifact
545+
artifact(project.tasks[computeJavadocTaskName(isHtml = false)])
546+
artifact(project.tasks[computeJavadocTaskName(isHtml = true)])
546547
}
547548
}
548549
}
@@ -589,12 +590,6 @@ class LibraryPlugin : Plugin<Project> {
589590
explicitApi()
590591
}
591592

592-
private fun KotlinJvmProjectExtension.setJvmConventions() {
593-
target {
594-
withSourcesJar()
595-
}
596-
}
597-
598593
private fun DokkaExtension.setConventions(
599594
project: Project,
600595
extension: LibraryDocsExtension

0 commit comments

Comments
 (0)