Skip to content

Instantly share code, notes, and snippets.

@Tapchicoma
Forked from mkobit/build.gradle.kts
Created October 2, 2017 10:17
Show Gist options
  • Save Tapchicoma/560054bee1eb8d953dad842efa12188e to your computer and use it in GitHub Desktop.
Save Tapchicoma/560054bee1eb8d953dad842efa12188e to your computer and use it in GitHub Desktop.
Run Kotlin REPL with built source code and main classpath in Gradle
// Assuming Kotlin plugin is applied...
// Run as: ./gradlew kotlinRepl --console plain --no-daemon
val kotlinRepl by tasks.creating {
dependsOn("assemble")
doFirst {
val buildscriptClasspath = rootProject.buildscript.configurations["classpath"]
val embeddedableCompiler = buildscriptClasspath
.resolvedConfiguration
.resolvedArtifacts
.first { it.name == "kotlin-compiler-embeddable" }
val jarLocation = embeddedableCompiler.file
val mainClasspath = java.sourceSets["main"].runtimeClasspath.joinToString(separator = ":")
javaexec {
classpath = files(jarLocation)
main = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler"
standardInput = System.`in`
args("-cp", mainClasspath)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment