CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-jetbrains-kotlin--kotlin-gradle-plugin

Official Gradle plugin for the Kotlin programming language that provides comprehensive build support for Kotlin projects including compilation, multiplatform development, Android integration, and native development capabilities

Pending
Overview
Eval results
Files

plugin-configuration.mddocs/

Plugin Configuration

This document covers the core plugin application patterns and entry points for different types of Kotlin projects.

Plugin Entry Points

JVM Plugin

For standard Kotlin/JVM projects targeting the Java Virtual Machine.

plugins {
    id("org.jetbrains.kotlin.jvm") version "2.2.0"
}

Usage Example:

plugins {
    id("org.jetbrains.kotlin.jvm") version "2.2.0"
    id("application")
}

application {
    mainClass.set("com.example.MainKt")
}

kotlin {
    jvmTarget = "11"
}

Multiplatform Plugin

For Kotlin Multiplatform projects targeting multiple platforms.

plugins {
    id("org.jetbrains.kotlin.multiplatform") version "2.2.0"
}

Usage Example:

plugins {
    id("org.jetbrains.kotlin.multiplatform") version "2.2.0"
}

kotlin {
    jvm()
    js(IR) {
        browser()
    }
    iosX64()
    iosArm64()
}

Android Plugin

For Kotlin/Android projects, used alongside the Android Gradle Plugin.

plugins {
    id("com.android.application") // or com.android.library
    id("org.jetbrains.kotlin.android") version "2.2.0"
}

Usage Example:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android") version "2.2.0"
}

android {
    compileSdk = 34
    
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}

kotlin {
    jvmTarget = "11"
}

JavaScript Plugin

For Kotlin/JS projects targeting JavaScript runtimes.

plugins {
    id("org.jetbrains.kotlin.js") version "2.2.0"
}

Usage Example:

plugins {
    id("org.jetbrains.kotlin.js") version "2.2.0"
}

kotlin {
    js(IR) {
        browser {
            webpackTask {
                outputFileName = "app.js"
            }
        }
    }
}

Subplugins

KAPT (Kotlin Annotation Processing Tool)

For annotation processing in Kotlin projects.

plugins {
    id("org.jetbrains.kotlin.kapt") version "2.2.0"
}

Usage Example:

plugins {
    id("org.jetbrains.kotlin.jvm") version "2.2.0"
    id("org.jetbrains.kotlin.kapt") version "2.2.0"
}

dependencies {
    kapt("com.google.dagger:dagger-compiler:2.48")
    implementation("com.google.dagger:dagger:2.48")
}

Parcelize

For Android Parcelable generation.

plugins {
    id("org.jetbrains.kotlin.plugin.parcelize") version "2.2.0"
}

AllOpen

For making classes open for frameworks like Spring.

plugins {
    id("org.jetbrains.kotlin.plugin.allopen") version "2.2.0"
}

allOpen {
    annotation("org.springframework.stereotype.Component")
}

NoArg

For generating no-argument constructors.

plugins {
    id("org.jetbrains.kotlin.plugin.noarg") version "2.2.0"
}

noArg {
    annotation("jakarta.persistence.Entity")
}

Scripting

For Kotlin scripting support.

plugins {
    id("org.jetbrains.kotlin.plugin.scripting") version "2.2.0"
}

Plugin Classes

The actual plugin implementation classes (for advanced usage or plugin development).

// Main plugin wrappers
class KotlinPluginWrapper : AbstractKotlinPluginWrapper()
class KotlinMultiplatformPluginWrapper : AbstractKotlinMultiplatformPluginWrapper()
class KotlinAndroidPluginWrapper : AbstractKotlinAndroidPluginWrapper()
class KotlinJsPluginWrapper : AbstractKotlinJsPluginWrapper()

// Base plugin classes
abstract class KotlinBasePluginWrapper : Plugin<Project>
abstract class AbstractKotlinPluginWrapper : KotlinBasePluginWrapper()
abstract class AbstractKotlinMultiplatformPluginWrapper : KotlinBasePluginWrapper()

Plugin Constants

const val KOTLIN_DSL_NAME = "kotlin"
const val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions"  
const val KOTLIN_PROJECT_EXTENSION_NAME = "kotlin"

Version Compatibility

The plugin version should match or be compatible with the Kotlin compiler version being used:

// Plugin version matches Kotlin version
plugins {
    id("org.jetbrains.kotlin.jvm") version "2.2.0"
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib:2.2.0")
}

Install with Tessl CLI

npx tessl i tessl/maven-org-jetbrains-kotlin--kotlin-gradle-plugin

docs

compilation-tasks.md

dependency-management.md

dsl-extensions.md

index.md

javascript-webassembly.md

multiplatform-targets.md

plugin-configuration.md

tile.json