在以下情况下,更改未反映在http://localhost:8080/hi
的服务响应中:
SomeController
的响应字符串http://localhost:8080/hi
的请求仍然给出了旧的响应即使手动运行./gradlew build
后,它们也会以某种方式被缓存。
完全不同的问题:我将Java 1.8 JRE和JDK安装在Program Files\Java
下的两个目录中。该项目显示了 JRE 依赖性,并且从STS build
窗口运行Gradle Tasks
会产生 JRE 而不是 JDK ,即使JAVA_HOME
已正确设置为JDK,STS仍默认配置为使用JDK(未选中JRE),而Spring Boot Project已配置为使用工作区设置(JDK)。似乎是从IDE运行时本身而不是从设置中获取JRE?我通过右键单击build
任务并选择build -> Open Gradle Run Configuration -> Java Home
并将其手动设置为与JDK相同的目录来找到解决方法。我还通过右键单击项目Properties -> Java Build Path -> Libraries
,删除了JRE System Library
并添加了JDK(Add Library... -> JRE System Library -> Workspace default JRE (jdk1.8.0_144)
),找到了该项目的解决方法。但是,有时项目会以某种方式将自己重置为JRE。
Gradle Distribution: Gradle wrapper from target build
Gradle Version: 4.5.1
Java Home: C:\Program Files\Java\jre1.8.0_171
package com.example.demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class SomeController {
@GetMapping("/hi")
fun hi(): String {
return "hey"
}
}
@SpringBootApplication
open class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
File -> New -> Spring Starter Project
Configure Kotlin -> Add Kotlin Nature
Boot Dashboard -> local -> demo [devtools] [:8080]