如何在IntelliJ IDEA社区中使Spring Boot的自动重启工作? (出/建目录问题)

时间:2019-01-06 12:31:52

标签: spring-boot gradle intellij-idea

我正在IntelliJ IDEA 2018.3社区中基于Gradle的Spring Boot 2项目中进行工作。

我想让Spring Boot的自动重启正常工作,以便在IDE中编辑文件时,IDE可以即时对其进行编译(不将其委派给Gradle),然后运行Spring Boot实例看到更新的类文件,然后重新启动应用程序的一部分。

我有:

  1. spring-boot-devtools添加到了我项目的依赖项中
  2. 在设置/构建执行部署/编译器中启用“自动构建项目”
  3. 在注册表中启用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的自动重启/实时重新加载工作?

1 个答案:

答案 0 :(得分:0)

找到了解决方案。

我需要在不使用Gradle的情况下启动Spring Boot应用程序。

点击右上角的下拉菜单;编辑配置;单击左上角的加号图标;选择Kotlin(或Java,无论您的主要语言是Spring Boot项目);输入Main类,它是包含main()方法的类(对于Kotlin,输入带有后缀Kt的文件名,例如com/demo/myblog/Application.kt变成com.demo.myblog.ApplicationKt)那好吧;并将其用作开始目标。

按上面的问题配置增量编译。