spring boot 使用 springloaded 在 gradle 中没有工作
Posted
技术标签:
【中文标题】spring boot 使用 springloaded 在 gradle 中没有工作【英文标题】:spring boot use springloaded no work in gradle 【发布时间】:2016-10-31 22:56:19 【问题描述】:当我在我的项目中使用 springloaded 时。 Spring Boot + Spring-Loaded (IntelliJ, Gradle)也有类似的问题 根据document, 我的 build.gradle 是:
buildscript
ext
springBootVersion = '1.3.5.RELEASE'
repositories
mavenCentral()
dependencies
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
classpath 'org.springframework:springloaded:1.2.0.RELEASE'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
//apply plugin: 'application'
springBoot
backupSource = false
mainClass = 'com.zhb.app.PortalApplication'
jar
baseName = 'springBootTest'
version = '0.0.1-SNAPSHOT'
//applicationDefaultJvmArgs = ['-javaagent:E:\\xgsdk\\commonLib\\springloaded-1.2.5.RELEASE.jar -noverify']
repositories
mavenCentral()
dependencies
compile "org.springframework.boot:spring-boot-starter-web",
"com.alibaba:fastjson:1.2.4",
"commons-codec:commons-codec:1.5",
"org.apache.commons:commons-lang3:3.3.2"
testCompile("org.springframework.boot:spring-boot-starter-test")
当我在 Eclipse 中运行应用程序时。弹簧加载不工作。
然后我按照springloaded document,将-javaagent:<pathTo>/springloaded-VERSION.jar -noverify
添加到运行配置
最后它运行良好。
我想到了两个问题。
首先是springloaded依赖classpath'org.springframework:springloaded:1.2.0.RELEASE'
不是必须的。
第二个是有没有办法在 build.gradle 中定义 VM 参数 -javaagent:<pathTo>/springloaded-VERSION.jar -noverify
。
我看到了gradle document。在我的 build.gradle 中,注释代码显示//apply plugin: 'application'
//applicationDefaultJvmArgs = ['-javaagent:E:\\xgsdk\\commonLib\\springloaded-1.2.5.RELEASE.jar -noverify']
但它不起作用。
【问题讨论】:
【参考方案1】:我看到你用的是spring 1.3.x
弹簧装在阁楼上:https://spring.io/projects
从现在开始你应该使用 DevTools:https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3
有几个选项可用(DevTools、Spring 加载、JRebel 等)
DevTools 是推荐的 Spring 方式,而不是唯一方式。
来自文档:“有几个热重载选项。推荐的方法是使用 spring-boot-devtools,因为它提供了额外的开发时功能,例如支持快速应用程序重启和 LiveReload 以及合理的开发时配置(例如模板缓存)。
另外,在 IDE 中运行(尤其是在调试时)是一种很好的开发方式(所有现代 IDE 都允许重新加载静态资源,并且通常还允许热交换 Java 类更改)。
spring-boot-devtools 模块包括对自动应用程序重启的支持。虽然不像 JRebel 或 Spring Loaded 这样的技术那么快,但它通常比“冷启动”快得多。在研究下面讨论的一些更复杂的重新加载选项之前,您可能应该尝试一下。"
Spring 加载目前不是很活跃:https://github.com/spring-projects/spring-loaded/releases 因此它位于 spring 项目页面的阁楼中。
【讨论】:
谢谢。你的意思是说我的项目中使用gradle和spring-boot没有办法使用spring load?但是为什么Spring Boot参考指南中包含配置spring load的内容呢? 有几个选项可用(DevTools、Spring 加载、JRebel 等)。DevTools 是推荐的 Spring 方式,而不是唯一方式。 是的,我希望加载的 Spring 将来会有用。 我尝试spring-boot-devtools
并不太满意。它会在每次小的更改(主要是在重构过程中)使用未编译的代码在后台重建您的应用程序。 Spring Loaded 让您可以完全控制重新加载。以上是关于spring boot 使用 springloaded 在 gradle 中没有工作的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot 两种热部署方式 springloader 和 devtools