Use dependency catalogs, and add support for using local concrete.

This commit is contained in:
Alex Zenla 2023-02-07 14:16:17 -05:00
parent 3f67e737c4
commit ac0a0b2bed
Signed by: alex
GPG Key ID: C0780728420EBFE5
9 changed files with 99 additions and 21 deletions

3
.gitignore vendored
View File

@ -119,3 +119,6 @@ run/
# Foundation Server
/server
# Foundation build
/.concrete-local-path

View File

@ -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 {

View File

@ -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)
}

View File

@ -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)
}

View File

@ -3,7 +3,7 @@ plugins {
}
dependencies {
implementation("net.dv8tion:JDA:5.0.0-alpha.2") {
implementation(libs.discord.jda) {
exclude(module = "opus-java")
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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")
}
}
}

View File

@ -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 {