Spring Boot开发人员工具自动重启在IntelliJ中不起作用

时间:2018-12-01 10:10:47

标签: java spring spring-boot intellij-idea spring-boot-devtools

最近在IntelliJ中使用spring-boot-devtools开始了spring-boot,并花了几个小时试图弄清楚IntelliJ为什么不接受我的更改并自动重启嵌入式tomcat。

此链接上的信息也无济于事:https://dzone.com/articles/spring-boot-application-live-reload-hot-swap-with

2 个答案:

答案 0 :(得分:3)

要使其正常运行,您需要:

1)具有在maven或gradle中启用的devtools。 在行家看起来像:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
         <scope>runtime</scope><!-- -->
        <optional>true</optional>
    </dependency>

2)在IntellijIDEA中:进入设置(ctrl + alt + s)->构建,执行,部署->编译器,选中“自动构建项目”

3)在IntellijIDEA中:按ctrl + shift + a,然后键入“ registry”,然后单击它。然后启用选项“ compiler.automake.allow.when.app.running”。

4)重新启动intellijIDEA!我因此失去了几个小时:/

它现在应该可以工作了。

请注意:

-您不需要其他路径或触发文件即可按预期工作。

-如果使用maven启动参数-Dspring-boot.run.fork=false启用调试,则devtools被禁用,因此它不应在代码更改时重新启动。

-在yaml文件中,您需要对来自pom的参数使用引号。如果您不这样做,则该项目将首次运行,然后在重新启动时失败。

spring:
  profiles:
    active: '@spring.profiles.active@'

它可以与智能社区版一起使用,值得大写,因为许多答案都说,它仅适用于最终用户。

答案 1 :(得分:0)

通过将项目名称从spring-boot更改为spring-boot-xxx(基本上是spring-boot除外)解决了该问题。

如果您仔细阅读了文档,此处将提到以下内容:

  

在确定类路径上的条目是否应在更改后触发重启时,DevTools自动忽略名为 spring-boot ,spring-boot-devtools,spring-boot-autoconfigure,spring-boot的项目-actuator和spring-boot-starter。

使用Ctrl + F9构建项目会自动触发重新启动。如果希望在保存班级文件后立即自动触发,则可以单击问题中提供的热插拔链接。

Spring Boot还具有一个选项,当特定文件发生更改时可以触发重新启动,并且可以使用以下属性在application.properties中进行配置

  

spring.devtools.restart.trigger-file =

希望这可以帮助某人节省时间。