【发布时间】:2014-08-13 19:11:14
【问题描述】:
我想在我的 Spring Boot 项目中使用热插拔。不知何故,尽管documentation 涵盖了这个主题,但我无法通过在我的 IDE (IntelliJ) 中运行它来使其工作。我只是使用带有 VM 属性的 main 方法运行该类:
-javaagent:/path/to/jar/springloaded.jar -noverify
我的问题是,我该如何让它发挥作用? :-)
另一个问题是如何使用 Gradle 和 IntelliJ 加载的弹簧。我发现强制开发人员手动下载 JAR,将其放置在某处并使用 JVM 参数指向它非常不方便。有没有更好的方法(我应该配置我自己的任务来完成这项工作并从我的 IDE 作为 Gradle 任务运行它)?
【问题讨论】:
-
您说您阅读了文档。也许您没有发现插件会为您下载并附加代理的事实?
-
你是什么意思?你的意思是gradle依赖?我不确定,因为在文档中它说依赖项应该放在 buildscript 块中,因此它是构建脚本而不是应用程序的依赖项 - 我不诚实地理解它。能给我举个例子吗?
-
文档中的示例是正确的。您将加载的依赖项添加到构建脚本(因此它可用于插件)。如果您使用 --info 启动 gradle,您将看到正在附加的代理。是什么不工作?
-
我在那里看到代理“正在附加代理... springloaded-1.2.0.RELEASE.jar”,但它无论如何都不起作用。即使我使用 gradle“gradle run”或“gradle bootRun”从命令行运行它。在我的 IDE 中,我通常只运行我认为最方便的主类(启动速度)。我想在那里重新加载,但即使指定 springloaded.jar 依赖项(请参阅我的原始问题)也无济于事。我可能错过了文档中的某些内容,或者我完全迷失了:-(
-
@kuceram 仅供参考,如果你更喜欢运行主类,你可以这样做非常好:在
Run -> Reload changed classes上设置一个键盘快捷键。使用 SL 也可能很方便。
标签: spring spring-boot spring-loaded