当前位置: 首页 > 知识库问答 >
问题:

Spring靴+Spring加载(IntelliJ、Gradle)

裴钧
2023-03-14

我想使用热插拔与我的Spring靴项目。我无法通过在我的IDE(IntelliJ)中运行它来使它工作,尽管文档中包含了这个主题。我只是使用带有VM属性的main方法运行该类:

-javaagent:/path/to/jar/springloaded.jar -noverify

我的问题是,我如何让它工作?:-)

共有1个答案

华知
2023-03-14

您需要按照文档中的说明配置项目:

http://docs.spring.io/spring-boot/docs/current-snapshot/reference/htmlsingle/#howto-reload-springload-gradle-and-intellij-idea

之后,您必须配置您的IDE以输出build/classes/main中编译的类(使用Idea插件,您可以按照上面链接中指定的配置outputDir,然后调用gradle Idea来完成)。

然后,如果启动任务(run/bootRun)或使用debug模式从IDE运行主类,则在编译类时,热代码重新加载应该可以工作。

这里的问题是,IntelliJ与Eclipse不同,不会在保存类时自动编译类(即使您将编译器配置为“build on save”,在运行/调试时也不会这样做)。这显然是IntelliJ做出的一个设计决定--正如这里所说的,IntelliJ的思想是Java类不会在保存时自动编译(CrazyCoder的答案)。

如果spring boot提供一个配置选项来监视您的源代码文件并在它们发生变化时重新编译它们,那将是非常理想的--这就是Grails所做的。但我认为这样的想法还不存在,甚至不可能将其与gradle结合起来,因为gradle负责管理类路径和诸如此类的东西。

所以据我所知有两种选择:

  • 请记住编译您编辑的所有内容(按照上一个StackOverflow链接中的建议添加一个更简单的编译快捷方式可能会有帮助)。
  • 您放置了一些文件系统监视器(例如Linux的inotify-tools和Mac OS X的launchd),当在任何源代码文件中检测到更改时,这些监视器将调用gradle CompileJava/CompileGroovy。

实际上还有另一个选择:更改IDE:-d(或者安装EclipseMode IntelliJ插件)。

 类似资料:
  • 我正在尝试让一个简单的Spring Boot应用程序与Spring Loaded和Gradle一起工作,但没有成功。我尝试了以下方法: > 将Spring-Boot与任务一起使用,只需在浏览器中使用简单的F5即可重新加载静态资源 如果我再次使用并通过文本编辑器更改一个类,并且使用它不起作用。 如果我用运行它,在现有控制器中进行更改,并使用IntelliJ,它只适用于现有方法。不更新新方法,更改签名

  • 我想使用应用程序.yml 而不是应用程序属性 我跟着: https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/boot-features-external-config.html 我正在使用: 春靴 2.6.2 爪哇 17 渐变 7.3.2 我的https://github.com/OldEngineer1911

  • 我创建了一个IntelliJ“空项目”,并添加了两个模块:一个用于Spring Boot(后端),一个用于Angular CLI(前端)。到目前为止,一切都很好。我的项目的文件结构 现在我把这个项目添加到GitLab中,但在克隆这个项目时遇到了一些问题,bc,由于某些原因,它有时只得到一个模块。我也遇到了。gitignore文件的问题,这需要在我的根项目中的特定模块之外。对于。gitlab-ci.

  • 我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹都在src/main/Resources/静态和src/main/Resources/tem板下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我已经按照说明创建了一个war文件,当我将其部署到Tomcat 7时——静态内容丢失了,只显示了Thymeleaf html模板。

  • 作为一个新的Web应用程序项目的一部分,我计划学习Spring。我开始通读Spring框架参考。当我在谷歌上搜索时,我遇到了Spring boot。我所理解的是,Spring boot通过减少配置帮助构建应用程序的速度比Spring快得多。现在我有点困惑,我应该继续学习Spring还是跳转到Spring boot。我的目的是了解Spring作为一个框架是如何工作的,而不是一些特性。所以请让我知道,

  • 我有一个类,它使用application-local.properties文件中定义的值,我认为这个值会被使用,因为application-properties有`spring.profiles.active=local 当我在IntelliJ中启动时,我会在控制台日志中看到以下内容: 它说它跳过了空的配置文件,但是当我检查'build/resources/main/application-loc