Module kotlin-gradle-plugin

kotlin-gradle-plugin artifact provides multiple plugins.

kotlin

How to apply:

apply plugin: 'kotlin'

Tasks:

NameTypeDescription
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:

NameTypeDescription
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

kotlin2js

How to apply:

apply plugin: 'kotlin2js'

Tasks:

NameTypeDescription
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:

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