Files
msgexchange-v2/build.gradle.kts
T

81 lines
3.2 KiB
Kotlin
Raw Normal View History

plugins {
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.ksp) // U01Kotlin 注解处理(无 KSP/kapt 则 Micronaut 不生成 BeanDefinition
alias(libs.plugins.micronaut.application)
}
group = "com.gzzn.omms"
version = "2.0.0-SNAPSHOT"
repositories {
mavenCentral()
}
java {
toolchain {
// Micronaut 5.1 系构件要求 JVM 25+(实测依赖解析结论,修正计划的 JDK 21 口径)
languageVersion = JavaLanguageVersion.of(25)
}
}
kotlin {
jvmToolchain(25)
2026-09-09 19:50:33 +08:00
compilerOptions {
// Keep Jackson XML annotations on both Kotlin constructor parameters and properties.
freeCompilerArgs.add("-Xannotation-default-target=param-property")
}
}
micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
// U01N23):processing.annotations 语义是“注解所在包”的过滤,业务包路径不匹配任何 Micronaut
// 注解,已移除(取默认),避免增量注解处理被错误过滤;注解处理由 kotlin-ksp + micronaut-inject-kotlin 承担。
}
}
dependencies {
// U01Micronaut Kotlin 注解处理器(KSP),生成 @Singleton/@Controller/@ConfigurationProperties 的 BeanDefinition
ksp(libs.micronaut.inject.kotlin)
implementation(libs.bundles.micronaut.runtime)
implementation(libs.micronaut.data.jdbc)
implementation(libs.micronaut.jdbc.hikari)
implementation(libs.micronaut.flyway)
implementation(libs.micronaut.kafka)
implementation(libs.micronaut.discovery.eureka)
// 指标:把管道积压/回填/水位等暴露为 MeterRegistry 指标(版本由 platform BOM 管)
implementation(libs.micronaut.micrometer.core)
implementation(libs.jackson.dataformat.xml)
implementation(libs.jackson.module.kotlin)
implementation(libs.logstash.logback.encoder)
runtimeOnly(libs.mysql.connector.j)
runtimeOnly(libs.postgresql)
runtimeOnly("org.flywaydb:flyway-database-postgresql:12.11.0")
// ACM2-11datasources.reference21 类静态主数据独立 PG 库)驱动 org.postgresql:postgresql
// 随阶段 6 实装加入(当前 reference enabled=false 不加载;版本由 micronaut-platform BOM 钉 ~42.7
runtimeOnly(libs.snakeyaml) // U02:显式版本入 catalog(原无版本号依赖 BOM 覆盖,snakeyaml 不在 micronaut BOM 内)
testImplementation(libs.junit.jupiter)
// U03:配置绑定回归测试的测试库(内存 datasource,冒烟用);
// V2 起 InboxLifecycleJdbcSqlTest 以 H2 的 PostgreSQL 兼容模式直连验证生命周期 SQL 语义
testImplementation(libs.h2)
testImplementation("io.micronaut.test:micronaut-test-junit5")
testImplementation("org.jetbrains.kotlin:kotlin-test")
// P3-AACM2-29):无外部 PG 时 JDBC 集成测试自动起隔离容器;有 MSGX_PG_* 环境变量时不启用
testImplementation("org.testcontainers:postgresql:1.20.4")
}
application {
// Kotlin 顶层 mainApplication.kt)→ JVM 主类为 ApplicationKt
// 不声明则 ./gradlew run 报 "No main class specified"、installDist 产出的启动脚本主类为空。
mainClass.set("com.gzzn.omms.msgexchange.ApplicationKt")
}
tasks.test {
useJUnitPlatform()
}