Spring Boot работает с Spring Loaded и Gradle
Я пытаюсь заставить простое приложение Spring-Boot работать с Spring Loaded и Gradle без какого-либо успеха. Я пробовал следующее:
Использование Spring-Boot с
bootRun
задача просто перезагружает статические ресурсы просто с помощью простого F5 в браузереЕсли я использую
bootRun
снова и изменить класс с помощью текстового редактора и использованияcompileJava
это не работает.Если я запускаю его с
IntelliJ Application
внести изменения в существующий контроллер и использовать IntelliJmake
это работает только для существующих методов. Не обновляет новые методы, не меняет подписи и т. Д.Использование 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'
}
}