【问题标题】:spring-boot-devtools doesn't reload dependent modules in multi-module maven projectspring-boot-devtools 不会在多模块 maven 项目中重新加载依赖模块
【发布时间】:2018-03-25 11:48:18
【问题描述】:

在开始之前,我想说我已经尝试过spring-boot-devtools reload of multi-module maven project changes 中提出的解决方案,但对我不起作用。

问题:

我有一个这样的多模块 Spring Boot 项目:

模块 launcher 对模块 GUI 有 Maven 依赖。我从 launcher 中的 main 方法启动我的 Spring Boot 应用程序。

当我运行应用程序并更改 GUI 模块中的任何 HTML 文件时,spring-boot-devtools 依赖项不会为我正在运行的应用程序实时重新加载这些更改。甚至手动重启 launcher 也无济于事。我需要手动编译GUI,然后再次运行launcher

我尝试了什么:

  1. 我尝试先定义 spring-boot-devtools 依赖项 parent pom.xml,然后仅在 GUI 模块中,然后同时在两者中。
  2. 我尝试按照spring-boot-devtools reload of multi-module maven project changes 中的建议在我的application.properties 文件中添加spring.devtools.restart.additional-paths=../gui。这确实会触发重新加载(根据日志),但这些更改不会传播到 GUI 依赖项的jar 文件。另外,在我把这个项目变成多模块之前,没有必要仅仅因为 HTML 文件而重新加载(没有正在编译),我可以立即看到更改。

如果有帮助的话,我会使用 Netbeans GUI。我还尝试从命令行运行该项目,但没有成功。所有模块上的 Maven 打包设置为jar

【问题讨论】:

  • 如果您从等式中删除相对路径并仅使用绝对路径配置 spring.devtools.restart.additional-paths=,会发生什么情况?
  • @BrianClozel 它是这样工作的。我输入的路径是这样的格式:C:\\Users\\Saraph\\path\\to\\gui。但是,我仍然想以某种方式概括这一点。虽然它适用于我的机器,但每个团队成员都必须重新配置它。

标签: spring spring-boot spring-boot-devtools


【解决方案1】:

当您在 devtools 中配置绝对路径时,这有效的事实告诉我,这主要是一个工作目录问题。

所以这意味着:

  • 配置的路径应该与您启动 CLI 的位置相关
  • 您应该在 IDE 的运行配置中配置与工作目录相同的位置(无论您的 IDE 用于启动应用程序的配置都应该有这样的选项)

在您的情况下:一切都应该与您的启动器模块相关;这也应该是您 IDE 中的工作目录。

【讨论】:

  • 请看我自己的回答。感谢您的帮助,但这次我必须将自己标记为解决方案。
【解决方案2】:

我不知道它是怎么发生的,但是在重新访问时,它开始工作,而我并没有故意改变任何东西。它甚至不需要 spring.devtools.restart.additional-path 属性集。

可能是 Netbeans IDE 的问题?再说一次,它也不能从命令行工作。如果有人对此有任何解释,仍将不胜感激,因为它可能会防止将来发生此问题。

【讨论】:

  • 很高兴您的问题自行解决了,但很难将其描述为答案
  • @MikePatrick 我明白,但我不能提供更好的。答案是“如果您遇到这种情况,请尝试重新加载您的开发环境”。
猜你喜欢
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 2015-10-10
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 2018-10-06
相关资源
最近更新 更多