4

在我的应用程序中,我添加了 SpringBoot devtools 以提高开发速度。

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

在其官方文件中,它说

运行完全打包的应用程序时,开发人员工具会自动禁用。如果您的应用程序是从 java -jar 启动的,或者它是从一个特殊的类加载器启动的,那么它被认为是“生产应用程序”。

该应用程序是从生产中的 java -jar 启动的。但是在开发过程中,它是如何在 Intellij idea 中部署的呢?

4

1 回答 1

6

这实际上很简单,但并不明显。当 spring-boot-devtools 包含在类路径中时,将启用 devtools。

默认情况下,spring-boot-maven-plugin 在构建最终 jar 文件时不包括 spring-boot-devtools,因此它被禁用。

Spring Boot Maven 插件文档

默认情况下会自动排除 Devtools(您可以使用 excludeDevtools 属性进行控制)。为了使用 war 打包,spring-boot-devtools必须将依赖项设置为可选或提供的范围。

如果您从 IDE 运行 spring 应用程序或运行mvn spring-boot:runspring-boot-devtools 在您的类路径中。

当 spring-boot-devtools 运行时,您将获得类似以下的日志:

.e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
于 2019-01-08T05:54:01.073 回答