Spring Shell - The Spring Shell project provides an interactive shell that allows you to plugin your own custom commands using a Spring based programming model.
In this post we’ll use Gradle 4.4 to build a Spring Shell coded with Kotlin 1.2.
Setup Gradle build
The initial setup of the build scripts is based on Using Gradle.
Within the build.gradle
we specify the Kotlin Gradle Plugin with:
plugins {
id "org.jetbrains.kotlin.jvm" version "1.2.0"
}
and add the required dependencies:
dependencies {
…
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
compile "org.jetbrains.kotlin:kotlin-reflect"
…
}
Note: The additional
kotlin-reflect
is needed to avoidBeanCreationException
caused byNoClassDefFoundError
(KClasses
).
Empty PlanetsShell
We boot the PlanetsShell
with this small main
class in src/main/kotlin
:
package de.datenkollektiv.planets.shell
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
@SpringBootApplication
open class PlanetsShell {
}
fun main(args: Array<String>) {
SpringApplication.run(PlanetsShell::class.java, *args)
}
Build and run Planets Shell
Nothing special to build our first Spring Shell project…
$ ./gradlew clean build
and run the PlanetsShell
:
$ java -jar build/libs/planets-shell.jar
…
2017-12-12 23:52:53.426 INFO 49791 --- [ main] d.d.planets.shell.PlanetsShellKt : Started PlanetsShellKt in 13.218 seconds (JVM running for 13.79)
shell:>
Let’s add some commands…stay tuned.