curl -s "https://get.sdkman.io" | bash sdk install gradle 4.5.1
MitM attacks can't happen while you're using HTTPS. Not possible. (Definitely don't run the script as root.)
Fun fact: If you've just installed gradle, are confused why nothing's working in a Spring Boot project that for some reason can't find the main class, doesn't already have gradlew, and want to try running gradle with the gradle wrapper, just run
gradle wrapper(via https://docs.gradle.org/4.5.1/userguide/gradle_wrapper.html)
and you'll have your own ./gradlew and ./gradlew.bat files in your project directory. It probably won't solve your problem. You can try adding this to your
build.gradle
file, but it may or may not help:springBoot { mainClassName = 'com.example.ExampleApplication' }Anyway, getting started with Spring Boot with Kotlin. Checkout the source for a basic Spring Boot Kotlin project: https://github.com/sdeleuze/spring-boot-kotlin-demo
Add
spring-boot-devtools
to the list of dependencies. (Modify the dependencies section so it looks like this:dependencies { compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-data-jpa") compile("com.h2database:h2") compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") compile("org.jetbrains.kotlin:kotlin-reflect") compile("com.fasterxml.jackson.module:jackson-module-kotlin") testCompile("org.springframework.boot:spring-boot-starter-test") { exclude(module = "junit") } testCompile("org.junit.jupiter:junit-jupiter-api") testRuntime("org.junit.jupiter:junit-jupiter-engine") // Add this import compile("org.springframework.boot:spring-boot-devtools") }
The
build.gradle.kts
file is written in, not Groovy, but Kotlin, using the Gradle Kotlin DSL plugin. Refer to the github repo for more documentation on using Kotlin with Gradle.Then, add this import to the top of the
build.gradle.kts
file:import org.springframework.boot.gradle.tasks.run.BootRun
And under
tasks { ... }
Add
withType<BootRun> { val sourceSets = the<JavaPluginConvention>().sourceSets sourceResources(sourceSets["main"]) }
I'm not sure what that does or whether it's necessary, but it's copied from https://dzone.com/articles/continuous-auto-restart-with-spring-boot-devtools.
After that, run
gradle build --continuous
or grade build -t
(same thing, just shorter) or ./gradlew build -t
(different thing, but using gradle wrapper is recommended for some reason, so that's what I actually run) in a new terminal window (in the root directory of your project) to get automatic rebuilds running. You'll also need to run gradle bootRun
or ./gradlew bootRun
.I've set up IDEA to run gradle bootRun for me by importing the project as a gradle project, choosing Edit Configuration under the Run menu, clicking the plus button to create a new Run configuration, adding my project, and putting
bootRun
in the Tasks box.I ran into an issue while trying to get IDEA set up. The main error it kept giving me, after having pulled all the gradle dependencies, was not being able to find basic Java classes like
Java.lang.String
. That was solved by following the steps in this support forum post: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206950935/comments/207150089.Basically, make sure your SDKs are loaded properly. In my case, I had to refresh the JDK that was already detected (because I installed the JDK after installing and running IDEA). Also, make sure you have your JDK installed and not just your JRE. In Fedora, I ran
dnf install java-1.8.0-openjdk-devel
as specified here: http://openjdk.java.net/install/. It doesn't come with Fedora 27 by default.