LTD-ManaagerBot/build.gradle.kts

121 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
fun k(v: String) = project.property(v) as String
plugins {
kotlin("jvm") version "1.9.23"
kotlin("plugin.serialization") version "1.9.23" // 添加序列化插件
application
id("com.github.johnrengelman.shadow") version "8.0.0" // fat jar
}
group = k("project_group")
version = k("project_version")
repositories {
repositories {
gradlePluginPortal()
mavenLocal()
maven {
url = uri("https://maven.aliyun.com/repository/public/")
}
mavenCentral()
maven {
url = uri("https://maven.aliyun.com/repository/gradle-plugin")
}
maven {
url = uri("https://libraries.minecraft.net/")
}
// 第三方 repo比如 MohistMC 或 GlareMasters Pub
maven {
url = uri("https://repo.glaremasters.me/repository/public/")
}
maven {
name = "LTD Maven"
url = uri("https://nexus.bot.leisuretimedock.top/repository/maven-public/")
}
}
//TODO: 0872d1c0-829c-e1d7-6782-89e45c8a6b76
dependencies {
// 添加序列化库
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
// Ktor WebSocket客户端
implementation("io.ktor:ktor-client-core:2.3.12")
implementation("io.ktor:ktor-client-websockets:2.3.3")
implementation("io.ktor:ktor-client-cio:2.3.3")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.3") // 推荐使用kotlinx.serialization替代Gson
implementation("io.ktor:ktor-client-content-negotiation:2.3.12")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
// 如果需要日志拦截器(推荐用于调试)
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
// 数据库相关
implementation("org.jetbrains.exposed:exposed-core:0.41.1")
implementation("org.jetbrains.exposed:exposed-jdbc:0.41.1")
implementation("com.mysql:mysql-connector-j:8.0.33") // 使用MySQL 8.x驱动
implementation("com.zaxxer:HikariCP:5.0.1") // 连接池
// 邮箱相关
implementation("jakarta.mail:jakarta.mail-api:2.0.1") //API
implementation("com.sun.mail:jakarta.mail:2.0.1") // 实现
// 日志系统
implementation("org.slf4j:slf4j-api:2.0.7")
implementation("org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0")
implementation("org.apache.logging.log4j:log4j-core:2.20.0")
implementation("org.apache.logging.log4j:log4j-api:2.20.0")
// 配置管理
implementation("org.yaml:snakeyaml:2.4")
implementation("org.snakeyaml:snakeyaml-engine:2.10")
implementation("com.typesafe:config:1.4.2") // 类型安全的配置库
// 协程
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.apache.commons:commons-lang3:3.17.0")
implementation("com.google.guava:guava:33.3.0-jre")
//DG_Lab 依赖库导入
implementation("io.netty:netty-all:4.1.109.Final")
implementation("com.google.code.gson:gson:2.10.1")
implementation("top.r3944realms.dg_lab:Common:${k("dg_lab_version")}")
//生成 二维码
implementation("com.google.zxing:core:[3.5.3,)")
//命令解析
implementation("com.mojang:brigadier:1.2.9")
// 测试
testImplementation(kotlin("test"))
testImplementation("io.ktor:ktor-client-mock:2.3.3")
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(17)
}
application {
mainClass.set("top.r3944realms.ltdmanager.MainKt") // 设置主类
}
}
tasks {
// ShadowJar 配置
named<ShadowJar>("shadowJar") {
archiveClassifier.set("") // 去掉 -all 后缀
mergeServiceFiles()
manifest {
attributes["Main-Class"] = "top.r3944realms.ltdmanager.MainKt"
}
}
// build 依赖 shadowJar
build {
dependsOn("shadowJar")
}
}