| # 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 | |
| | compile*SourceSetName*Kotlin | [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 |
| |------------------------------|--------------------|---------------| |
| | compile*VariantName*Kotlin | [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: |
| |
| | Name | Type | Description |
| |--------------------------------|--------------------|---------------| |
| | compileKotlin2Js | [KotlinJsCompile] | A task is created for `main` source set | |
| | compileTestKotlin2Js | [KotlinJsCompile] | A task is created for `test` source set | |
| | compile*SourceSetName*Kotlin2Js| [KotlinJsCompile] | A task is created for each additional source set | |
| |
| Each [KotlinJsCompile] task provides `kotlinOptions` ([KotlinJsOptions]) extension: |
| |
| ``` |
| compileKotlin2Js { |
| kotlinOptions { |
| noStdlib = true |
| } |
| // kotlinOptions.noStdlib = true |
| } |
| ``` |