在开发期间使用 Gradle 在 Spring Boot 的 JAR 中包含 DevTools
Posted
技术标签:
【中文标题】在开发期间使用 Gradle 在 Spring Boot 的 JAR 中包含 DevTools【英文标题】:Including DevTools in Spring Boot's JAR with Gradle during development 【发布时间】:2021-12-18 19:09:03 【问题描述】:我一直在寻找答案,但到目前为止我发现的几乎所有东西都已经过时或不起作用。我想在我的 JAR 中包含 Spring DevTools,以便我可以使用实时重新加载功能。
到目前为止我做了什么;
-
使用
./gradlew bootBuildImage
构建 Docker 映像。
创建了一个使用此图像的docker-compose.yml
。
将 IntelliJ 中的配置更改为使用 org.springframework.boot.devtools.RemoteSpringApplication
作为主类。
但是,当我更改某些内容并构建项目时,我总是会遇到同样的错误:
Exception in thread "File Watcher" java.lang.IllegalStateException: Unexpected 404 NOT_FOUND response uploading class files
我是否需要更改构建映像的方式或应用一些额外的 Gradle 配置才能使其正常工作?对于 Maven,只需将 excludeDevTools
设置为 false
就足够了,但看起来它不适用于 Gradle。
【问题讨论】:
这可能对你有帮助github.com/spring-projects/spring-boot/issues/22533 【参考方案1】:通过在build.gradle.kts
中添加这个来解决它;
tasks.getByName<BootJar>("bootJar")
classpath(configurations["developmentOnly"])
【讨论】:
以上是关于在开发期间使用 Gradle 在 Spring Boot 的 JAR 中包含 DevTools的主要内容,如果未能解决你的问题,请参考以下文章
在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程
当我在开发模式下停止应用程序并将 build.gradle.kts 与 spring boot 一起使用时出错
在 Idea 中使用 Angular2 TypeScript 开发 Spring Boot 应用程序:gradle processResources wathing mode Wanted
如何在多模块spring boot应用程序gradle中只访问不同模块的一个类?