plugins { kotlin("jvm") version "2.2.21" kotlin("plugin.spring") version "2.2.21" id("org.springframework.boot") version "4.0.6" id("io.spring.dependency-management") version "1.1.7" id("com.bmuschko.docker-spring-boot-application") version "10.0.0" } group = "com.msksbr" version = "0.1" description = "bookMgr" java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.10.2") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.aspectj:aspectjweaver") implementation("org.springframework.security:spring-security-crypto") implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.3") implementation("org.bouncycastle:bcprov-jdk18on:1.84") implementation("com.mysql:mysql-connector-j") implementation("com.baomidou:mybatis-plus-spring-boot4-starter:3.5.15") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("io.github.oshai:kotlin-logging-jvm:7.0.0") implementation("io.jsonwebtoken:jjwt-api:0.13.0") runtimeOnly("io.jsonwebtoken:jjwt-impl:0.13.0") runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.13.0") runtimeOnly("org.codehaus.janino:janino") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict", "-Xannotation-default-target=param-property") } } tasks.withType { useJUnitPlatform() } // 生产打包时排除dev环境配置 tasks.bootJar { exclude("application-dev.yaml") } val giteaRegistry = System.getenv("GITEA_REGISTRY") ?: "gitea.example.com" val giteaUser = System.getenv("GITEA_USERNAME") ?: "" val giteaToken = System.getenv("GITEA_TOKEN") ?: "" docker { springBootApplication { baseImage.set("bellsoft/liberica-runtime-container:jre-21-slim-musl") ports.set(listOf(8080)) images.set(setOf( "$giteaRegistry/$giteaUser/bookMgr:${project.version}", "$giteaRegistry/$giteaUser/bookMgr:latest" )) jvmArgs.set(listOf("-Xmx512m", "-Dfile.encoding=UTF-8")) } registryCredentials { url.set("https://$giteaRegistry") username.set(giteaUser) password.set(giteaToken) } }