Files
kotlin-fork/libraries/tools/kotlin-gradle-plugin/Module.md
T
Yahor Berdnikau 92d9c5b150 Remove 'kotlin2js' Gradle plugin
Plugin class is still left untouched as it is used by
js platform old plugin.

^KT-48276 Fixed
2022-04-06 13:32:34 +00:00

2.5 KiB

Module kotlin-gradle-plugin

kotlin-gradle-plugin artifact provides multiple plugins.

kotlin

How to apply:

apply plugin: 'kotlin'

Tasks:

Name Type Description
compileKotlin [KotlinJvmCompile] A task is created for main source set
compileTestKotlin [KotlinJvmCompile] A task is created for test source set
compileSourceSetNameKotlin [KotlinJvmCompile] A task is created for each additional source set

Each [KotlinJvmCompile] task provides kotlinOptions ([KotlinJvmOptions]) extension:

compileKotlin {
    kotlinOptions {
        noStdlib = true
    }
    // kotlinOptions.noStdlib = true
}

kotlin-android

A plugin that should be used for Android development.

How to apply:

apply plugin: 'kotlin-android'

Tasks:

Name Type Description
compileVariantNameKotlin [KotlinJvmCompile] A task is created for each variant

Note that tasks are created after evaluation, so all references to tasks should be done in afterEvaluate section:

afterEvaluate {
    compileDebugKotlin {
        kotlinOptions {
            noStdlib = true
        }
    }
}

Android plugin also adds kotlinOptions extension to android section to set options for all kotlin tasks:

android {
    kotlinOptions {
        noStdlib = true
    }
}

Task's kotlinOptions "override" ones in android section:

android {
    kotlinOptions {
        noStdlib = true
    }
}

afterEvaluate {
    compileDebugKotlin {
        kotlinOptions {
            noStdlib = false
        }
    }
}
// compileProductionKotlin.noStdlib == true
// compileDebugKotlin.noStdlib == false

Kotlin/JS

How to apply:

plugins {
    id 'org.jetbrains.kotlin.js'
}

Tasks:

Name Type Description
compileKotlin2Js [KotlinJsCompile] A task is created for main source set
compileTestKotlin2Js [KotlinJsCompile] A task is created for test source set
compileSourceSetNameKotlin2Js [KotlinJsCompile] A task is created for each additional source set

Each [KotlinJsCompile] task provides kotlinOptions ([KotlinJsOptions]) extension:

compileKotlinJs {
    kotlinOptions {
        noStdlib = true
    }
    // kotlinOptions.noStdlib = true
}