Build Kotlin code using sbt.
sbt-kotlin-plugin started off as a fork of kotlin-plugin but has been
completely revamped with time and now shares almost no code with the original repository.
sbt-kotlin-plugin requires sbt 1.6 or later. Earlier sbt versions are not supported and will
result in exceptions being thrown at runtime. This is because the plugin depends on specific
functionality first shipped with sbt 1.6.
- Insert into project/plugins.sbt:
addSbtPlugin("org.jetbrains.scala" % "sbt-kotlin-plugin" % "<version>")- Enable plugin for your project:
lazy val myProject = project.in(file(".")).enablePlugins(KotlinPlugin)- If necessary, add
kotlinLib("stdlib"), it is not included by default.- Loading standard kotlin libraries and plugins: use
kotlinLib(NAME)as above to load standard kotlin modules provided by JetBrains. For JetBrains kotlin compiler plugins, usekotlinPlugin(NAME)(e.g.kotlinPlugin("android-extensions")). The difference is that the latter marks the module as acompile-internaldependency and will be excluded from the final build product. - Any other libraries can be loaded using the normal
libraryDependenciesmechanism. Compiler plugins should be added as a normallibraryDependencybut specified to be% "compile-internal"
- Loading standard kotlin libraries and plugins: use
- If a non-standard Classpath key needs to be added to the kotlin compile step,
it can be added using the
kotlinClasspath(KEY)function- For example, to compile with the android platform using
android-sdk-plugin:kotlinClasspath(Compile, bootClasspath in Android)
- For example, to compile with the android platform using
kotlincPluginOptions: specifies options to pass to kotlin compiler plugins. Useval plugin = KotlinPluginOptions(PLUGINID)andplugin.option(KEY, VALUE)to populate this settingkotlinSource: specifies kotlin source directory, defaults tosrc/main/kotlinandsrc/test/kotlinkotlinVersion: specifies versions of kotlin compiler and libraries to use, defaults to1.3.50kotlincOptions: options to pass to the kotlin compilerkotlincJvmTarget: specifies JVM target version for building, defaults to1.6kotlinLib(LIB): load a standard kotlin library, for examplekotlinLib("stdlib"); the library will utilize the version specified inkotlinVersionplugin
- See the test cases for this plugin