diff --git a/.gitignore b/.gitignore index 3ffa09b..f9703ab 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,6 @@ run/ # Foundation Server /server + +# Foundation build +/.concrete-local-path diff --git a/build.gradle.kts b/build.gradle.kts index 10a06b6..ff776df 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,11 +2,13 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { java - id("gay.pizza.foundation.concrete-root") version "0.10.0" - id("gay.pizza.foundation.concrete-library") version "0.10.0" apply false - id("gay.pizza.foundation.concrete-plugin") version "0.10.0" apply false - id("com.github.ben-manes.versions") version "0.45.0" + alias(libs.plugins.concrete.root) + alias(libs.plugins.concrete.base) apply false + alias(libs.plugins.concrete.library) apply false + alias(libs.plugins.concrete.plugin) apply false + + alias(libs.plugins.versions) } allprojects { diff --git a/common-all/build.gradle.kts b/common-all/build.gradle.kts index 1bf9819..b9207b9 100644 --- a/common-all/build.gradle.kts +++ b/common-all/build.gradle.kts @@ -4,6 +4,6 @@ plugins { dependencies { // Serialization - api("com.charleskorn.kaml:kaml:0.51.0") - api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1") + api(libs.kotlin.serialization.json) + api(libs.kotlin.serialization.yaml) } diff --git a/common-heimdall/build.gradle.kts b/common-heimdall/build.gradle.kts index 4637cea..13ce39c 100644 --- a/common-heimdall/build.gradle.kts +++ b/common-heimdall/build.gradle.kts @@ -4,8 +4,8 @@ plugins { dependencies { api(project(":common-all")) - api("org.postgresql:postgresql:42.5.3") - api("org.jetbrains.exposed:exposed-jdbc:0.41.1") - api("org.jetbrains.exposed:exposed-java-time:0.41.1") - api("com.zaxxer:HikariCP:5.0.1") + api(libs.postgresql) + api(libs.exposed.jdbc) + api(libs.exposed.java.time) + api(libs.hikaricp) } diff --git a/foundation-bifrost/build.gradle.kts b/foundation-bifrost/build.gradle.kts index d559834..d29ac41 100644 --- a/foundation-bifrost/build.gradle.kts +++ b/foundation-bifrost/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - implementation("net.dv8tion:JDA:5.0.0-alpha.2") { + implementation(libs.discord.jda) { exclude(module = "opus-java") } diff --git a/foundation-core/build.gradle.kts b/foundation-core/build.gradle.kts index 5fad3e6..d19836a 100644 --- a/foundation-core/build.gradle.kts +++ b/foundation-core/build.gradle.kts @@ -6,10 +6,10 @@ dependencies { api(project(":common-all")) implementation(project(":foundation-shared")) - implementation("software.amazon.awssdk:s3:2.19.31") - implementation("org.quartz-scheduler:quartz:2.3.2") - implementation("com.google.guava:guava:31.1-jre") + implementation(libs.aws.sdk.s3) + implementation(libs.quartz.core) + implementation(libs.guava) - implementation("io.insert-koin:koin-core:3.3.2") - testImplementation("io.insert-koin:koin-test:3.3.2") + implementation(libs.koin.core) + testImplementation(libs.koin.test) } diff --git a/foundation-shared/build.gradle.kts b/foundation-shared/build.gradle.kts index 565322b..fa53b52 100644 --- a/foundation-shared/build.gradle.kts +++ b/foundation-shared/build.gradle.kts @@ -4,7 +4,6 @@ plugins { dependencies { api(project(":common-all")) - - api("org.jetbrains.xodus:xodus-openAPI:2.0.1") - api("org.jetbrains.xodus:xodus-entity-store:2.0.1") + api(libs.xodus.core) + api(libs.xodus.entity.store) } diff --git a/settings.gradle.kts b/settings.gradle.kts index a071ae1..3d01213 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,4 @@ +@file:Suppress("UnstableApiUsage") rootProject.name = "foundation" pluginManagement { @@ -8,6 +9,21 @@ pluginManagement { } } +var localConcretePathString: String? = System.getenv("FOUNDATION_CONCRETE_PATH") + +if (localConcretePathString == null) { + val concreteLocalPathFile = rootProject.projectDir.resolve(".concrete-local-path") + if (concreteLocalPathFile.exists()) { + localConcretePathString = concreteLocalPathFile.readText().trim() + } +} + +if (localConcretePathString != null) { + println("[Using Local Concrete] $localConcretePathString") + + includeBuild(localConcretePathString!!) +} + include( ":common-all", ":common-plugin", @@ -19,3 +35,61 @@ include( ":foundation-heimdall", ":tool-gjallarhorn", ) + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + version("versions-plugin", "0.45.0") + version("concrete", "0.10.0") + + plugin("versions", "com.github.ben-manes.versions").versionRef("versions-plugin") + + val concretePlugins = listOf( + plugin("concrete-root", "gay.pizza.foundation.concrete-root"), + plugin("concrete-base", "gay.pizza.foundation.concrete-base"), + plugin("concrete-library", "gay.pizza.foundation.concrete-library"), + plugin("concrete-plugin", "gay.pizza.foundation.concrete-plugin") + ) + + for (concrete in concretePlugins) { + if (localConcretePathString == null) { + concrete.versionRef("concrete") + } else { + concrete.version("DEV") + } + } + + version("clikt", "3.5.1") + version("xodus", "2.0.1") + version("quartz", "2.3.2") + version("guava", "31.1-jre") + version("koin", "3.3.2") + version("aws-sdk-s3", "2.19.31") + version("slf4j-simple", "2.0.6") + version("discord-jda", "5.0.0-alpha.2") + version("kaml", "0.51.0") + version("kotlin-serialization-json", "1.3.1") + version("postgresql", "42.5.3") + version("exposed", "0.41.1") + version("hikaricp", "5.0.1") + + library("clikt", "com.github.ajalt.clikt", "clikt").versionRef("clikt") + library("xodus-core", "org.jetbrains.xodus", "xodus-openAPI").versionRef("xodus") + library("xodus-entity-store", "org.jetbrains.xodus", "xodus-entity-store").versionRef("xodus") + library("quartz-core", "org.quartz-scheduler", "quartz").versionRef("quartz") + library("guava", "com.google.guava", "guava").versionRef("guava") + library("koin-core", "io.insert-koin", "koin-core").versionRef("koin") + library("koin-test", "io.insert-koin", "koin-test").versionRef("koin") + library("aws-sdk-s3", "software.amazon.awssdk", "s3").versionRef("aws-sdk-s3") + library("slf4j-simple", "org.slf4j", "slf4j-simple").versionRef("slf4j-simple") + library("discord-jda","net.dv8tion", "JDA").versionRef("discord-jda") + library("kotlin-serialization-json", "org.jetbrains.kotlinx", "kotlinx-serialization-json").versionRef("kotlin-serialization-json") + library("kotlin-serialization-yaml", "com.charleskorn.kaml", "kaml").versionRef("kaml") + + library("postgresql", "org.postgresql", "postgresql").versionRef("postgresql") + library("exposed-jdbc", "org.jetbrains.exposed", "exposed-jdbc").versionRef("exposed") + library("exposed-java-time", "org.jetbrains.exposed", "exposed-java-time").versionRef("exposed") + library("hikaricp", "com.zaxxer", "HikariCP").versionRef("hikaricp") + } + } +} diff --git a/tool-gjallarhorn/build.gradle.kts b/tool-gjallarhorn/build.gradle.kts index 2b97a48..bb1789e 100644 --- a/tool-gjallarhorn/build.gradle.kts +++ b/tool-gjallarhorn/build.gradle.kts @@ -6,8 +6,8 @@ plugins { dependencies { implementation(project(":common-heimdall")) - implementation("com.github.ajalt.clikt:clikt:3.5.1") - implementation("org.slf4j:slf4j-simple:2.0.6") + implementation(libs.clikt) + implementation(libs.slf4j.simple) } tasks.jar {