2021-02-19 01:33:32 +01:00
|
|
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
|
|
|
|
2021-05-25 06:58:34 +02:00
|
|
|
plugins {
|
|
|
|
id("com.github.johnrengelman.shadow")
|
|
|
|
}
|
|
|
|
|
2021-05-25 09:44:57 +02:00
|
|
|
val platforms = setOf(
|
|
|
|
rootProject.projects.viaversionBukkit,
|
|
|
|
rootProject.projects.viaversionBungee,
|
|
|
|
rootProject.projects.viaversionFabric,
|
|
|
|
rootProject.projects.viaversionSponge,
|
|
|
|
rootProject.projects.viaversionVelocity
|
|
|
|
).map { it.dependencyProject }
|
|
|
|
|
2021-02-18 06:32:43 +01:00
|
|
|
tasks {
|
2021-05-25 06:58:34 +02:00
|
|
|
shadowJar {
|
2021-02-19 01:33:32 +01:00
|
|
|
archiveClassifier.set("")
|
2021-02-18 11:31:45 +01:00
|
|
|
archiveFileName.set("ViaVersion-${project.version}.jar")
|
2021-02-18 06:32:43 +01:00
|
|
|
destinationDirectory.set(rootProject.projectDir.resolve("build/libs"))
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
2021-05-25 09:44:57 +02:00
|
|
|
platforms.forEach { platform ->
|
|
|
|
val shadowJarTask = platform.tasks.named<ShadowJar>("shadowJar").forUseAtConfigurationTime().get()
|
2021-02-18 06:32:43 +01:00
|
|
|
dependsOn(shadowJarTask)
|
2021-05-25 09:44:57 +02:00
|
|
|
dependsOn(platform.tasks.withType<Jar>())
|
2021-04-14 14:16:48 +02:00
|
|
|
from(zipTree(shadowJarTask.archiveFile))
|
2021-02-18 06:32:43 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
build {
|
2021-05-25 06:58:34 +02:00
|
|
|
dependsOn(shadowJar)
|
2021-02-19 01:33:32 +01:00
|
|
|
}
|
2021-05-25 09:44:57 +02:00
|
|
|
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))
|
|
|
|
}
|
|
|
|
}
|
2021-02-18 06:32:43 +01:00
|
|
|
}
|
2021-05-25 06:58:34 +02:00
|
|
|
|
|
|
|
publishShadowJar()
|