@@ -31,16 +31,18 @@ import io.spine.dependency.build.GradleDoctor
3131import io.spine.dependency.build.Ksp
3232import io.spine.dependency.build.PluginPublishPlugin
3333import io.spine.dependency.lib.Protobuf
34- import io.spine.dependency.local.CoreJvmCompiler
3534import io.spine.dependency.local.Compiler
35+ import io.spine.dependency.local.CoreJvmCompiler
3636import io.spine.dependency.local.McJava
3737import io.spine.dependency.local.ProtoTap
3838import io.spine.dependency.test.Kotest
3939import io.spine.dependency.test.Kover
4040import io.spine.gradle.repo.standardToSpineSdk
4141import org.gradle.api.Project
4242import org.gradle.api.Task
43+ import org.gradle.api.file.DuplicatesStrategy
4344import org.gradle.api.tasks.JavaExec
45+ import org.gradle.jvm.tasks.Jar
4446import org.gradle.kotlin.dsl.ScriptHandlerScope
4547import org.gradle.plugin.use.PluginDependenciesSpec
4648import org.gradle.plugin.use.PluginDependencySpec
@@ -347,3 +349,15 @@ val buildToolConfigurations: Array<String> = arrayOf(
347349 " ksp" ,
348350 " dokka" ,
349351)
352+
353+ /* *
354+ * Make the `sourcesJar` task accept duplicated input which seems to occur
355+ * somewhere inside Protobuf Gradle Plugin.
356+ */
357+ fun Project.allowDuplicationInSourcesJar () {
358+ tasks.withType(Jar ::class .java).configureEach {
359+ if (name == " sourcesJar" ) {
360+ duplicatesStrategy = DuplicatesStrategy .INCLUDE
361+ }
362+ }
363+ }
0 commit comments