spring-boot-devtools不会在多模块maven项目

时间:2017-10-13 10:54:35

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

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

问题:

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

enter image description here

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

当我运行应用程序并更改 GUI 模块中的任何HTML文件时,spring-boot-devtools依赖关系不会为正在运行的应用程序重新加载这些更改。甚至手动重启启动器都有帮助。我需要手动编译 GUI ,然后再次运行启动器

我尝试了什么:

  1. 我首先尝试定义spring-boot-devtools依赖项 pom.xml,然后只在 GUI 模块中,然后同时在两者中。
  2. 我尝试按spring-boot-devtools reload of multi-module maven project changes中的建议在我的spring.devtools.restart.additional-paths=../gui文件中添加application.properties。这确实会触发重新加载(根据日志),但这些更改不会传播到 GUI 依赖项的jar文件。此外,在我将这个项目变成多模块之前,不需要因为HTML文件(没有编译任何东西)而重新加载,我可以立即看到更改。
  3. 如果有任何帮助,我会使用Netbeans GUI。我也试过从命令行运行项目,没有成功。所有模块上的Maven包装都设置为jar

2 个答案:

答案 0 :(得分:5)

在devtools中配置绝对路径时,这种方法有效,这告诉我这主要是工作目录问题。

所以这意味着:

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

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

答案 1 :(得分:-3)

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

可能是Netbeans IDE的问题吗?然而,它也没有从命令行工作。如果有人对此有任何解释,它仍然会感激,因为它可以防止将来发生这个问题。