plugins { alias(libs.plugins.java) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.plugin.spring) alias(libs.plugins.spring.boot) alias(libs.plugins.spring.dependency.management) } group = "org.jcnc" version = "1.0-SNAPSHOT" /** * 由于 Kotlin 插件被引入时会自动添加依赖,但根项目不需要 Kotlin 依赖,因此需要排除 Kotlin 依赖 */ configurations.implementation { exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib") } allprojects { // 设置全局属性 ext{ set(ProjectFlags.USE_SPRING_BOOT,false) } repositories { mavenLocal() maven { url = uri("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev") } maven { url = uri("https://raw.githubusercontent.com/eurotech/kura_addons/mvn-repo/") } maven { url = uri("https://maven.aliyun.com/repository/public/") } maven { url = uri("https://maven.aliyun.com/repository/spring/") } maven { url = uri("https://maven.aliyun.com/repository/spring-plugin/") } maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin/") } mavenCentral() google() gradlePluginPortal() } } subprojects { afterEvaluate { // springbootWeb if (project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT)) { apply { plugin(libs.plugins.spring.dependency.management.get().pluginId) plugin(libs.plugins.spring.boot.get().pluginId) plugin(libs.plugins.kotlin.plugin.spring.get().pluginId) } dependencies { implementation(libs.springBootStarter.web) testImplementation(libs.springBootStarter.test) testRuntimeOnly(libs.junitPlatform.launcher) } } } val libs = rootProject.libs apply { plugin(libs.plugins.java.get().pluginId) plugin(libs.plugins.kotlin.jvm.get().pluginId) } println(project.name+":"+project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT)) kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict") } } } tasks.test { useJUnitPlatform() } kotlin { jvmToolchain(21) } fun Project.getPropertyByBoolean(key: String): Boolean { return properties[key]?.toString()?.toBoolean() ?: false }