2

シンプルなSpring-BootアプリケーションをSpring LoadedとGradleで動作させようとしていますが、成功していません。私は次のことを試しました:

  1. タスクでSpring-Bootを使用するbootRunと、ブラウザで単純なF5キーを押すだけで静的リソースがリロードされます

  2. もう一度使用bootRunして、テキスト エディターを使用してクラスを変更すると、compileJavaそれが機能しません。

  3. 既存のコントローラーに変更を加えて実行しIntelliJ Application、IntelliJ を使用すると、make既存のメソッドに対してのみ機能します。新しいメソッド、署名の変更などを更新しません。

  4. VM 引数で IntelliJ を使用する:

    -javaagent:C:\Users\myuser\.m2\repository\org\springframework\springloaded\1.2.1.RELEASE\springloaded-1.2.1.RELEASE.jar -noverify

それでも何もしません。

理想的には、Gradle のみを使用してプロセスを実行したいので、IDE に依存しません。

私のサンプル コードを確認できるように、Github プロジェクトをご覧ください: サンプル プロジェクト

で変更を行うだけですDemoController

4

1 に答える 1

2

build bootRunトリックは、単純な「bootRun」の代わりにタスクを使用することだったようです。

これは、Java クラスが変更されたときにインクリメンタル コンパイルで watch プラグインも使用する Gradle ビルド ファイルです。

buildscript {
    ext {
        springBootVersion = '1.2.2.RELEASE'
        springLoadedVersion = "1.2.1.RELEASE"
    }
    repositories {
        mavenCentral()
        mavenLocal()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.springframework:springloaded:${springLoadedVersion}")
        classpath 'com.bluepapa32:gradle-watch-plugin:0.1.5'
    }
}

repositories {
    mavenCentral()
    mavenLocal()
    jcenter()
}

apply plugin: "java"
apply plugin: "spring-boot"
apply plugin: 'idea'
apply plugin: 'application'
apply plugin: 'com.bluepapa32.watch'


mainClassName = "com.example.my.Application"

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    runtime("org.hsqldb:hsqldb")
}

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

idea {
    module {
        inheritOutputDirs = false
        outputDir = new File("$buildDir/classes/main/")
    }
}

compileJava {
    //enable compilation in a separate daemon process
    options.fork = true
    //enable incremental compilation
    options.incremental = true
}

watch {
    java {
        files files('src/main/java')
        tasks 'compileJava'
    }
}
于 2015-03-14T17:36:26.757 に答える