Spring Boot работает с Spring Loaded и Gradle

Я пытаюсь заставить простое приложение Spring-Boot работать с Spring Loaded и Gradle без какого-либо успеха. Я пробовал следующее:

  1. Использование Spring-Boot с bootRun задача просто перезагружает статические ресурсы просто с помощью простого F5 в браузере

  2. Если я использую bootRun снова и изменить класс с помощью текстового редактора и использования compileJava это не работает.

  3. Если я запускаю его с IntelliJ Application внести изменения в существующий контроллер и использовать IntelliJ make это работает только для существующих методов. Не обновляет новые методы, не меняет подписи и т. Д.

  4. Использование IntelliJ с аргументом VM:

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

Все еще ничего не делает.

В идеале я хотел бы выполнить этот процесс только с помощью Gradle, поэтому я не зависим от IDE

Пожалуйста, посмотрите на проект Github, чтобы вы могли увидеть мой пример кода: Пример проекта

Просто внесите любые изменения в DemoController

1 ответ

Решение

Кажется, дело в том, чтобы использовать задачу build bootRun вместо простого 'bootRun`.

Это файл сборки Gradle, который также использует плагин watch с добавочными компиляциями при изменении классов Java:

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'
    }
}
Другие вопросы по тегам