Изменения в классе kotlin не распознаются Spring Boot? - PullRequest
0 голосов
/ 05 июля 2018

Изменения не отражаются в ответе службы от http://localhost:8080/hi после:

  1. Изменение строки ответа SomeController в приведенном ниже коде
  2. Spring Tool Suite автоматически компилирует изменения
  3. Spring Boot DevTools автоматически перезагружает сервер
  4. Запрос http://localhost:8080/hi все еще дает старый ответ

Каким-то образом они кэшируются даже после запуска ./gradlew build вручную.

Совершенно разные проблемы: у меня Java 1.8 JRE и JDK установлены в две директории под Program Files\Java. Проект показывает зависимость JRE и запуск build из окна STS Gradle Tasks дает JRE вместо JDK , даже если JAVA_HOME правильно для JDK STS настроен на использование JDK по умолчанию (JRE не проверено), а для проекта Spring Boot настроено использование параметров рабочей области (JDK). Похоже, что JRE выбирается из самой среды IDE, а не из настроек? Я нашел обходной путь, щелкнув правой кнопкой мыши задачу 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)
}

Конфигурация

  • Windows 10 Pro
  • Spring Tool Suite 3.9.4. ВЫПУСК
  • JDK 1.8
  • Котлин 1.2.41
  • Gradle Wrapper 4.5.1
  • Spring Boot + DevTools 2.0.3.RELEASE

Шаги настройки

  1. Новое рабочее пространство в STS с расширениями Gradle Buildship и Kotlin
  2. Добавить JDK 1.8 по умолчанию
  3. Создать проект File -> New -> Spring Starter Project
    • Gradle (Buildship 2.x)
    • Java 8
    • Котлин
    • Реактивная сеть
    • DevTools
    • Привод
  4. Проект правой кнопкой мыши Configure Kotlin -> Add Kotlin Nature
  5. Запуск службы Boot Dashboard -> local -> demo [devtools] [:8080]
...