Skip to content

Kotlin 插件

Kotlin JVM 插件为 Gradle 项目提供 Kotlin 编译支持。

基本配置

kotlin
plugins {
    kotlin("jvm") version "1.9.22"
    // 或完整 ID:
    // id("org.jetbrains.kotlin.jvm") version "1.9.22"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib"))  // Kotlin 标准库
    testImplementation(kotlin("test"))
}

Kotlin 编译配置

kotlin
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        jvmTarget = "17"
        freeCompilerArgs = listOf(
            "-Xjsr305=strict",              // 严格 null 检查(配合 Spring 注解)
            "-Xjvm-default=all",            // 接口默认方法
            "-opt-in=kotlin.RequiresOptIn"  // 实验性 API
        )
        apiVersion = "1.9"
        languageVersion = "1.9"
    }
}

Kotlin + Spring Boot

kotlin
plugins {
    kotlin("jvm") version "1.9.22"
    kotlin("plugin.spring") version "1.9.22"  // Spring 插件(自动 open 类)
    kotlin("plugin.jpa") version "1.9.22"      // JPA 插件(无参构造函数)
    id("org.springframework.boot") version "3.2.0"
    id("io.spring.dependency-management") version "1.1.4"
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        freeCompilerArgs += "-Xjsr305=strict"
        jvmTarget = "17"
    }
}

Kotlin 与 Java 混合项目

kotlin
plugins {
    kotlin("jvm") version "1.9.22"
    java
}

sourceSets {
    main {
        kotlin { srcDirs("src/main/kotlin", "src/main/java") }
        java  { srcDirs("src/main/java") }
    }
}

下一步