Spring boot 热重载在 InteliJ 社区版中不起作用

问题描述 投票:0回答:2

我希望在我的类更新时 Spring Boot 自动重新启动服务器。我已经看到以下答案:

Spring Boot 如何在不重新启动服务器的情况下加载代码中的更改

我的pom文件有以下依赖:

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

我在 Intelij 中启用了以下设置:

还有:

当我现在启动服务器时,我得到以下信息:

日志中的通知:

2021-12-18 15:18:42.624 INFO 4204 --- [重新启动Main] o.s.b.d.a.OptionalLiveReloadServer :LiveReload 服务器是 在端口 35729 上运行

但是现在,当我对主要方法所在的包中的任何文件和子包(例如:测试控制器)进行更改时,我的服务器不会重新加载。

有什么想法可以解决这个问题吗?

java spring spring-boot
2个回答
2
投票

正如IntelliJ 版本比较所示,社区版不“支持”:

Spring、Jakarta EE、Java EE、Micronaut、Quarkus、Helidon 等...

我们可以(有点难看,因为异常“飞翔”,重启发生(至少)2次..取决于构建/编译需要多长时间)“黑客”。

运行 maven

spring-boot:run
配置,我们可以:

  • (更好)停用显示的设置:编译时保存,“允许运行时自动生成...”(我们也可以离开,但重新启动的结果/次数将难以预测:)
  • 触发(额外的)“(重新)构建模块/项目”构建,或
    mvn process-classes
    (或“触及类路径”的东西)。

0
投票

我在 macOS 12.7.4 上使用 IntelliJ IDEA 2024.1(社区版),它对我有用,尽管它并不适用于每次更改。例如,如果删除空格,它不会重新启动服务器,但如果添加空格或实际语句,它会重新启动服务器,这很好。重新加载也需要几秒钟的时间。

我的

pom.xml
中已经有了开发工具依赖项

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

但是,热重载仍然不起作用。

为了让它发挥作用,我必须做OP也做的事情。请参阅下面的屏幕截图。

enter image description here

enter image description here

所以也许如果您将社区版本更新到 2024.1,它就会起作用。请注意,我直接从 IntelliJ 运行该应用程序,而不是使用

mvn

为了完整起见,以下是我的一些相关部分

pom.xml

...

<properties>
    <java.version>17</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

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

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
© www.soinside.com 2019 - 2024. All rights reserved.