Spring 使用 Spring 加载和 Gradle 启动
Spring Boot work with Spring Loaded and Gradle
我试图让一个简单的 Spring-Boot 应用程序与 Spring 加载和 Gradle 一起工作,但没有成功。我尝试了以下方法:
使用 Spring-Boot 和 bootRun
任务只需在浏览器中使用简单的 F5 即可重新加载静态资源
如果我再次使用 bootRun
并通过文本编辑器更改 class 并使用 compileJava
它不起作用。
如果我 运行 它与 IntelliJ Application
对现有控制器进行更改并使用 IntelliJ make
它仅适用于现有方法。不更新新方法、更改签名等
使用带有 VM 参数的 IntelliJ:
-javaagent:C:\Users\myuser\.m2\repository\org\springframework\springloaded.2.1.RELEASE\springloaded-1.2.1.RELEASE.jar -noverify
还是什么都不做。
理想情况下,我只想通过使用 Gradle 来执行该过程 - 所以我 IDE 独立
请查看 Github 项目,这样您就可以看到我的示例代码:
Sample Project
只需在 DemoController
中执行任何更改
似乎诀窍是使用任务 build bootRun
而不是简单的“bootRun”。
这是一个 Gradle 构建文件,当 Java 类 更改时,它还使用带有增量编译的 watch 插件:
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'
}
}
我试图让一个简单的 Spring-Boot 应用程序与 Spring 加载和 Gradle 一起工作,但没有成功。我尝试了以下方法:
使用 Spring-Boot 和
bootRun
任务只需在浏览器中使用简单的 F5 即可重新加载静态资源如果我再次使用
bootRun
并通过文本编辑器更改 class 并使用compileJava
它不起作用。如果我 运行 它与
IntelliJ Application
对现有控制器进行更改并使用 IntelliJmake
它仅适用于现有方法。不更新新方法、更改签名等使用带有 VM 参数的 IntelliJ:
-javaagent:C:\Users\myuser\.m2\repository\org\springframework\springloaded.2.1.RELEASE\springloaded-1.2.1.RELEASE.jar -noverify
还是什么都不做。
理想情况下,我只想通过使用 Gradle 来执行该过程 - 所以我 IDE 独立
请查看 Github 项目,这样您就可以看到我的示例代码: Sample Project
只需在 DemoController
似乎诀窍是使用任务 build bootRun
而不是简单的“bootRun”。
这是一个 Gradle 构建文件,当 Java 类 更改时,它还使用带有增量编译的 watch 插件:
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'
}
}