我正在IntelliJ IDEA 2018.3社区中基于Gradle的Spring Boot 2项目中进行工作。
我想让Spring Boot的自动重启正常工作,以便在IDE中编辑文件时,IDE可以即时对其进行编译(不将其委派给Gradle),然后运行Spring Boot实例看到更新的类文件,然后重新启动应用程序的一部分。
我有:
spring-boot-devtools
添加到了我项目的依赖项中compiler.automake.allow.when.app.running
但是我仍然无法使自动重启正常工作。
问题似乎是IDEA将已编译的类放在 out 目录中,而不是Gradle的 build 目录中。此外,已编译的类(和更新的资源文件)与Gradle放在不同的子目录结构中。这显然是well-known "feature" of IDEA, as in "Works As Intended."
out/
production/ <- different
classes/
(package)/
MyClass.class
resources/
templates/
test.html
build/
classes/
kotlin/ <- different
main/ <- different
(package)/
MyClass.class
resources/
main/ <- different
templates/
test.html
因此,考虑到IDEA的这一“功能”,我如何才能使Spring Boot的自动重启/实时重新加载工作?
答案 0 :(得分:0)
找到了解决方案。
我需要在不使用Gradle的情况下启动Spring Boot应用程序。
点击右上角的下拉菜单;编辑配置;单击左上角的加号图标;选择Kotlin(或Java,无论您的主要语言是Spring Boot项目);输入Main类,它是包含main()
方法的类(对于Kotlin,输入带有后缀Kt
的文件名,例如com/demo/myblog/Application.kt
变成com.demo.myblog.ApplicationKt
)那好吧;并将其用作开始目标。
按上面的问题配置增量编译。