当前位置: 首页 > 知识库问答 >
问题:

多模块maven项目变更的spring-boot-devtools重新加载

桑坚
2023-03-14

想象一个多模块的Maven-Project。项目结构为:

pom.xml //parentpom
   |
  pom.xml //submodule_1
   |
  pom.xml //submodule_2
   .
   .
   .
  pom.xml //submodule_7

例如,submodule_5具有submodule_6和submodule_7作为依赖项。可以构建子模块5来构造一个可以部署的WAR文件。Spring-Boot-Devtools提供了每当submodule_5的类路径发生变化时自动重启的特性。

无论何时使用以下方法运行应用程序:

mvn spring-boot:run

并且对submodule_5进行了更改(取决于您使用的IDE更改了类路径。(对于Eclipse automaticaly/InteliJ,当按Ctrl+F9)时,spring-boot automaticaly将重新启动应用程序并添加更改。发生在子模块6或子模块7上的更改不会触发自动重启。

  1. 是否有一种方法可以使您在子模块6或子模块7中进行更改时强制重新启动,以便应用更改?
  2. spring-boot-devtools使用两个classloader:“Base classloader”和“Restart classloader”。是否在应用程序初始启动时,将子模块6和子模块7添加到“基本类装入器”中,而将子模块5保留在“重新启动类装入器”中?使得每当submodule_5强制重新启动时,它就使用“基本classloader”中的submodule_6和submodule_7版本?

共有1个答案

岳劲
2023-03-14

您可以在application.properties中指定spring-boot-devtools监视的其他文件夹:

spring.devtools.restart.additional-paths=../submodule_6,../submodule_7

请参见Spring关于使用-boot-devtools-restart-adatory-path的文档。

 类似资料:
  • 在开始之前,我想说我已经尝试了spring-boot-devtools重新加载多模块maven项目更改中提出的解决方案,这对我并不起作用。 问题: 我有这样一个多模块Spring Boot项目: null 我使用Netbeans GUI如果这有任何帮助。我还尝试从命令行运行该项目,但没有成功。所有模块上的Maven打包设置为。

  • 我正在尝试创建一个多模块的项目,包含两个模块,核心和Web。它们都是我在Spring Initialzer上生成的Spring Boot项目。我设置了Maven POM文件,但在部署它时遇到了问题。然而,我很困惑配置是如何工作的。 核心模块将包含域对象/实体、Spring数据JPA存储库、服务,并将打包为一个JAR。Web模块将具有Spring Security、控制器和视图。它将被包装成一场战争

  • 我有以下Maven项目结构: i、 e.Project1、Project2和Project3在目录结构上是对等的,它们都是Spring Boot应用程序(JAR)。我想将Project2和Project3视为Project1的子项,而不改变目录结构。当我在父项目上执行相同的maven命令时,我需要在子项目上过渡地执行所有maven命令。而且最重要的是,我应该能够将它们打包到一个JAR文件中。我在谷

  • 我们正在多模块项目中使用spring boot。 我们有一个域访问模块,它具有公共的域对象类、存储库,以及数据源、JPA、Hibernate等配置,这些都是使用application.properties配置的。我们将所有这些配置放入公共模块中,以避免在更高级模块中重复这些公共配置。 在构建域模块时,这一切都运行良好,因此在测试单元中正确地加载了配置。 由于我们正在使用spring-boot,因此

  • 我设计了一个maven多模块项目,就像下面这个帖子的第一个答案:Multi-module maven with Spring Boot 现在我想要一个通用的maven模块,它可以包含一些供多个微服务使用的模型。如果我将这个公共项目作为第一级父pom的子项目(这样所有由引导注入的依赖项(如jpa、jackson等)都可用于公共项目),那么STS/Spring将它检测为引导应用程序,并抱怨maven

  • 所以我想构建一个具有以下结构的项目: 现在,模块1和模块2是模块3的依赖项。 问题1:这种方法是错误的吗? 问题2:当我实现这个时,项目的封装结构为父pom和模块1的pom,而模块1、模块2和模块3的子模块的封装结构为jar。现在,当我运行mvn clean install时,我得到以下错误: