Spring Boot Dev Tools将它们关闭以进行生产?

Mat*_*ana 18 spring spring-boot

我正在阅读很多关于spring dev工具的内容,我已经尝试过它们,它们看起来很酷.但是,我不明白它们是如何启用/禁用的.例如,只是添加依赖项,一切都神奇地起作用,但是如果我想将代码部署到生产中呢?开发工具是否仍在运行,我需要使用配置文件或其他东西禁用它们?

Bri*_*zel 26

不,它会自动关闭.

Spring Boot参考文档:

运行完全打包的应用程序时会自动禁用开发人员工具.如果您的应用程序是使用java -jar启动的,或者如果它是使用特殊的类加载器启动的,则它被视为"生产应用程序".将依赖项标记为可选是防止devtools使用您的项目传递应用于其他模块的最佳实践.Gradle不支持开箱即用的可选依赖项,因此您可能希望在此期间查看propdeps-plugin.

如果要确保devtools永远不会包含在生成构建中,可以使用excludeDevtools构建属性来完全删除JAR.该属性由Maven和Gradle插件支持.

  • 是的,它已在我的答案中作为链接提供:http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools参考指南很好,引用功能的参考:-) (2认同)

Bur*_*ton 6

对于使用JAR打包的Spring Boot应用程序,它将自动排除在外。但是,对于WAR打包的Spring Boot项目,事实并非如此。对于Maven Spring Boot项目,您必须将依赖项标记为“已提供”,并在pom.xml中设置excludeDevTools = true。

将devtools更改为“提供”

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

从Maven Spring构建插件中排除devtools

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludeDevtools>true</excludeDevtools>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:https : //github.com/spring-projects/spring-boot/issues/7556

  • `excludeDevtools` 设置为 `true` [默认](https://docs.spring.io/spring-boot/docs/current/maven-plugin/repackage-mojo.html#excludeDevtools)。 (2认同)
  • 你是对的,但是当打包 WAR 时,除非特别排除,否则无论默认值如何,它都会被包含在内。https://github.com/spring-projects/spring-boot/issues/7556 (2认同)

归档时间:

查看次数:

8518 次

最近记录:

7 年,1 月 前