Make proper sources jar (#2495)

This commit is contained in:
Jason 2021-05-25 00:44:57 -07:00 committed by GitHub
parent d5f56784e2
commit 03638028cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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>("shadowJar").forUseAtConfigurationTime().get()
platforms.forEach { platform ->
val shadowJarTask = platform.tasks.named<ShadowJar>("shadowJar").forUseAtConfigurationTime().get()
dependsOn(shadowJarTask)
dependsOn(subproject.tasks.withType<Jar>())
dependsOn(platform.tasks.withType<Jar>())
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()