Spring Boot Dev Tools Turning them off for production?

前端 未结 3 1178
难免孤独
难免孤独 2021-02-11 19:44

I was reading around a lot about spring dev tools and I have tried them on and they seem pretty cool. However, I don\'t understand how they get enabled / disabled. For instan

相关标签:
3条回答
  • 2021-02-11 19:52

    It is excluded automatically for Spring Boot applications that use the JAR packaging. However, for WAR packaged Spring Boot projects, it is not. For Maven Spring Boot projects you must mark the dependency as provided and also set excludeDevTools=true in your pom.xml.

    Change devtools to "provided"

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>provided</scope>
    </dependency>
    

    Exclude devtools from maven spring build plugin

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <excludeDevtools>true</excludeDevtools>
        </configuration>
    </plugin>
    

    More information here: https://github.com/spring-projects/spring-boot/issues/7556

    0 讨论(0)
  • 2021-02-11 19:53

    spring-boot-devtools is only for easing development effort. While packaging the application this dependency is not included. Cannot be used to create a shippable product.

    0 讨论(0)
  • 2021-02-11 20:01

    No, it's turned off automatically.

    From the Spring Boot reference documentation:

    Developer tools are automatically disabled when running a fully packaged application. If your application is launched using java -jar or if it’s started using a special classloader, then it is considered a “production application”. Flagging the dependency as optional is a best practice that prevents devtools from being transitively applied to other modules using your project. Gradle does not support optional dependencies out-of-the-box so you may want to have a look to the propdeps-plugin in the meantime.

    and

    If you want to ensure that devtools is never included in a production build, you can use the excludeDevtools build property to completely remove the JAR. The property is supported with both the Maven and Gradle plugins.

    0 讨论(0)
提交回复
热议问题