Build kotlin code using sbt
- 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-internal
dependency and will be excluded from the final build product. - Any other libraries can be loaded using the normal
libraryDependencies
mechanism. Compiler plugins should be added as a normallibraryDependency
but 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/kotlin
andsrc/test/kotlin
kotlinVersion
: specifies versions of kotlin compiler and libraries to use, defaults to1.3.50
kotlincOptions
: options to pass to the kotlin compilerkotlincJvmTarget
: specifies JVM target version for building, defaults to1.6
kotlinLib(LIB)
: load a standard kotlin library, for examplekotlinLib("stdlib")
; the library will utilize the version specified inkotlinVersion
plugin
- See the test cases for this plugin