1. ホーム
  2. intellij-idea

[解決済み] IntelliJ 15、SpringBoot devtools livereloadが動作しない。

2023-05-03 04:21:19

質問

Spring Boot devtools 1.3の新機能であるLiveReloadに問題があります。 クラスの変更時にリロードされないのです。 私は、Devoxx 2015でIntelliJでデモを見たことがあります。何かIDEの設定を有効にしておく必要があるのでしょうか? 私はIDE経由で実行しており、Gradle経由ではありません。 私は"Make project automatically"を有効にしてみましたが、それは助けにならないようです。

正しくロードされているようで、正しいパスで探しています。

2015-11-23 05:55:30.592 DEBUG 4700 --- [  restartedMain] o.s.boot.devtools.restart.Restarter      : Starting application com.myapp.Application with URLs [file:/E:/Projects/myapp/build/classes/main/, file:/E:/Projects/myapp/build/resources/main/]

私のファイル

build.gradle

buildscript {
    ext {
        springBootVersion = '1.3.0.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    }
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'idea'
apply plugin: 'spring-boot' 
apply plugin: 'war'


war {
    baseName = 'myapp'
    version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}

configurations {
    providedRuntime
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('org.springframework.boot:spring-boot-devtools')
    compile('org.springframework.boot:spring-boot-starter-jdbc')
    compile('org.projectlombok:lombok')
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('net.sourceforge.jtds:jtds:1.3.1');
    testCompile('org.springframework.boot:spring-boot-starter-test') 
}

dependencyManagement {
    imports { 
        mavenBom "org.springframework.cloud:spring-cloud-starter-parent:Brixton.M3" 
    }
}


eclipse {
    classpath {
         containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
         containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.7'
}

HelloWorldController

@Controller
public class HelloWorldController {

    @RequestMapping("/")
    @ResponseBody
    String home(){

        return "Hello World test";
    }
}

どのように解決するのですか?

あなたがコーディングをしていて、プロジェクトで何かを変更したことを DevTools が自動的に見つけ出してくれると期待しているのではありませんか?Devtools はクラスパス フォルダを監視することによってそれを行います。クラスパスフォルダが .class ファイル(またはリソース)が変更されたとき、devtoolsは適切なアクションを取ります。

もし何も表示されないなら、それはおそらくコーディングだけでクラスパスを更新していないからでしょう。あなたは プロジェクトを作成 を呼び出してクラスパスを更新する必要があります。参照  のドキュメントを参照してください。