* build: update build-time dependencies, address new warnings * build: switch to central repo declaration, remove redundant repositories * build: use spotless predeclaration, more task avoidance on kotlin modules
139 lines
4.2 KiB
Kotlin
139 lines
4.2 KiB
Kotlin
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
|
|
|
pluginManagement {
|
|
repositories {
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
maven("https://maven.fabricmc.net/") {
|
|
name = "fabric"
|
|
}
|
|
maven("https://maven.quiltmc.org/repository/release/") {
|
|
name = "quiltReleases"
|
|
mavenContent { releasesOnly() }
|
|
}
|
|
maven("https://repo.jpenilla.xyz/snapshots/") {
|
|
name = "jmpSnapshots"
|
|
mavenContent { snapshotsOnly() }
|
|
}
|
|
}
|
|
includeBuild("build-logic")
|
|
}
|
|
|
|
plugins {
|
|
id("ca.stellardrift.polyglot-version-catalogs") version "6.0.1"
|
|
id("quiet-fabric-loom") version "1.0-SNAPSHOT"
|
|
}
|
|
|
|
dependencyResolutionManagement {
|
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
|
repositories {
|
|
mavenCentral()
|
|
maven("https://oss.sonatype.org/content/repositories/snapshots/") {
|
|
name = "sonatypeOssSnapshots"
|
|
mavenContent { snapshotsOnly() }
|
|
}
|
|
/* The Minecraft repository, used for cloud-brigadier */
|
|
maven("https://libraries.minecraft.net/") {
|
|
name = "minecraftLibraries"
|
|
mavenContent {
|
|
releasesOnly()
|
|
includeGroup("com.mojang")
|
|
includeGroup("net.minecraft")
|
|
}
|
|
}
|
|
/* The paper repository, used for cloud-paper */
|
|
maven("https://repo.papermc.io/repository/maven-public/")
|
|
/* Used for cloud-cloudburst */
|
|
maven("https://repo.opencollab.dev/maven-snapshots/") {
|
|
name = "cloudburst"
|
|
mavenContent {
|
|
snapshotsOnly()
|
|
includeGroup("org.cloudburstmc")
|
|
}
|
|
}
|
|
/* The current Fabric repository */
|
|
maven("https://maven.fabricmc.net/") {
|
|
name = "fabric"
|
|
mavenContent { includeGroup("net.fabricmc") }
|
|
}
|
|
/* The current Sponge repository */
|
|
maven("https://repo.spongepowered.org/repository/maven-public/") {
|
|
name = "sponge"
|
|
mavenContent { includeGroup("org.spongepowered") }
|
|
}
|
|
/* JitPack, used for random dependencies */
|
|
maven("https://jitpack.io") {
|
|
name = "jitpack"
|
|
content { includeGroupByRegex("com\\.github\\..*") }
|
|
}
|
|
/* JDA's maven repository for cloud-jda */
|
|
maven("https://m2.dv8tion.net/releases") {
|
|
name = "dv8tion"
|
|
mavenContent { releasesOnly() }
|
|
}
|
|
}
|
|
}
|
|
|
|
rootProject.name = "cloud"
|
|
|
|
include(":cloud-bom")
|
|
|
|
// Core Modules
|
|
include(":cloud-core")
|
|
include(":cloud-services")
|
|
include(":cloud-tasks")
|
|
include(":cloud-annotations")
|
|
|
|
// Kotlin Extensions
|
|
setupKotlinModule("cloud-kotlin-extensions")
|
|
setupKotlinModule("cloud-kotlin-coroutines")
|
|
setupKotlinModule("cloud-kotlin-coroutines-annotations")
|
|
|
|
// Discord Modules
|
|
setupDiscordModule("cloud-javacord")
|
|
setupDiscordModule("cloud-jda")
|
|
|
|
// Minecraft Modules
|
|
setupMinecraftModule("cloud-brigadier")
|
|
setupMinecraftModule("cloud-bukkit")
|
|
setupMinecraftModule("cloud-fabric")
|
|
setupMinecraftModule("cloud-paper")
|
|
setupMinecraftModule("cloud-velocity")
|
|
//setupMinecraftModule("cloud-sponge")
|
|
setupMinecraftModule("cloud-sponge7")
|
|
setupMinecraftModule("cloud-bungee")
|
|
setupMinecraftModule("cloud-cloudburst")
|
|
setupMinecraftModule("cloud-minecraft-extras")
|
|
|
|
// IRC Modules
|
|
setupIrcModule("cloud-pircbotx")
|
|
|
|
// Example Modules
|
|
setupExampleModule("example-bukkit")
|
|
setupExampleModule("example-bungee")
|
|
setupExampleModule("example-jda")
|
|
setupExampleModule("example-velocity")
|
|
|
|
fun setupIrcModule(name: String) =
|
|
setupSubproject(name, file("cloud-irc/$name"))
|
|
|
|
fun setupDiscordModule(name: String) =
|
|
setupSubproject(name, file("cloud-discord/$name"))
|
|
|
|
fun setupMinecraftModule(name: String) =
|
|
setupSubproject(name, file("cloud-minecraft/$name"))
|
|
|
|
fun setupKotlinModule(name: String) =
|
|
setupSubproject(name, file("cloud-kotlin/$name"))
|
|
|
|
fun setupExampleModule(name: String) =
|
|
setupSubproject(name, file("examples/$name"))
|
|
|
|
fun setupSubproject(name: String, projectDirectory: File) = setupSubproject(name) {
|
|
projectDir = projectDirectory
|
|
}
|
|
|
|
inline fun setupSubproject(name: String, block: ProjectDescriptor.() -> Unit) {
|
|
include(name)
|
|
project(":$name").apply(block)
|
|
}
|