diff --git a/universal/build.gradle.kts b/universal/build.gradle.kts index b88d476fd..2c8396b5a 100644 --- a/universal/build.gradle.kts +++ b/universal/build.gradle.kts @@ -4,28 +4,38 @@ plugins { id("com.github.johnrengelman.shadow") } +val platforms = setOf( + rootProject.projects.viaversionBukkit, + rootProject.projects.viaversionBungee, + rootProject.projects.viaversionFabric, + rootProject.projects.viaversionSponge, + rootProject.projects.viaversionVelocity +).map { it.dependencyProject } + tasks { shadowJar { archiveClassifier.set("") archiveFileName.set("ViaVersion-${project.version}.jar") destinationDirectory.set(rootProject.projectDir.resolve("build/libs")) duplicatesStrategy = DuplicatesStrategy.EXCLUDE - sequenceOf( - rootProject.projects.viaversionBukkit, - rootProject.projects.viaversionBungee, - rootProject.projects.viaversionFabric, - rootProject.projects.viaversionSponge, - rootProject.projects.viaversionVelocity, - ).map { it.dependencyProject }.forEach { subproject -> - val shadowJarTask = subproject.tasks.named("shadowJar").forUseAtConfigurationTime().get() + platforms.forEach { platform -> + val shadowJarTask = platform.tasks.named("shadowJar").forUseAtConfigurationTime().get() dependsOn(shadowJarTask) - dependsOn(subproject.tasks.withType()) + dependsOn(platform.tasks.withType()) from(zipTree(shadowJarTask.archiveFile)) } } build { dependsOn(shadowJar) } + sourcesJar { + rootProject.subprojects.forEach { subproject -> + if (subproject == project) return@forEach + val platformSourcesJarTask = subproject.tasks.findByName("sourcesJar") as? Jar ?: return@forEach + dependsOn(platformSourcesJarTask) + from(zipTree(platformSourcesJarTask.archiveFile)) + } + } } publishShadowJar()