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

多模块maven项目中的Spring Boot配置

宣瀚
2023-03-14

我有一个问题,为我的多模块maven项目正确设置Spring启动。

有一个模块“api”使用另一个模块“core”。Api有一个应用程序。包含spring的属性文件。邮政主机=xxx。根据Spring Boot文档,这为您提供了JavaMailSender接口的默认实现,可以自动连接。

然而,负责发送电子邮件的类驻留在“核心”包中。当我尝试构建该模块时,构建失败,因为找不到JavaMailSender的实现。

我当时的猜测是,邮件配置应该位于单独应用程序的“核心”中。属性。我创造了它并移动了Spring。邮政从“api”到“core”属性文件的主机属性。

这一次,核心模块构建成功,但由于同样的异常,“api”未能构建,所以我想我只是转移了问题。

我不太了解处理这种情况所需的结构,所以我想知道,有一个“核心”模块,包含发送邮件的所有正确配置,让其他模块使用其中的邮件代码和配置,正确的方法是什么。

共有3个答案

阎声
2023-03-14

API的pom.xml必须依赖于CORE模块。

柏正平
2023-03-14

有一个有效的application.properties每个项目。您只需保留2个属性文件即可成功构建。

当api模块使用核心模块时,应用程序。核心模块中的属性被api覆盖。

谢承颜
2023-03-14

我在另一个堆栈溢出问题中找到了答案:如何添加多个应用程序。spring boot中的属性文件?

原来只能有一个应用程序。spring boot创建的最后一个jar中的属性文件。要拥有多个文件,必须将其中一个文件重命名为自定义文件。我将核心模块的属性命名为“core application.properties”。

然后在API模块中,我将其添加到spring boot应用程序类中:

@SpringBootApplication
@PropertySource(value = {"core-application.properties", "application.properties"})

这样我就可以正确地使用基本属性文件,并在更具体的模块中覆盖它们。此外,您仍然可以使用此设置创建特定于概要文件的属性文件(core application production.properties),无需手动将这些属性添加到propertysource)。请注意,@PropertySource目前不适用于yaml配置文件。

 类似资料:
  • 父项目为demo-mybatis子模块为mybatis-dao、demo-service。demo-mybatis pom.xml如下: 4.0.0 pom mybatis-DAO Demo-service Demo-mybatis-app org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.example D

  • 我正在学习本教程https://spring.io/guides/gs/multi-module/#scratch 在根目录中,我创建了3个目录:moduleA、moduleB和moduleC 我运行了

  • 我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并

  • 问题内容: 我正在研究一个多模块Maven项目,其结构如下: war模块取决于jar模块,并将打包后将jar工件添加到webapp的lib目录中。 war模块和jar模块都使用Apache log4j进行日志记录,并共享相同的log4j配置文件(log4j.xml),该文件当前位于jar模块项目中。并且此log4j.xml将打包到jar- module.jar文件中,但是,我想将其放入war包中而

  • 我有一个多模块maven应用程序,我们需要通过Jenkins构建。项目结构如下: 现在,mvn清洁安装-fa.xml工作正常。为此,我创建了一个詹金斯的工作。现在,和a.xml一样,我有另一个项目b.xml.b.xml有和a.xml相同的代码,除了不同的Ids。所以,我又为詹金斯创造了一份工作b.xml.两份工作都很好。但是,现在我想根据我们在Git中提交的项目,从单个Jenkins工作中构建这两

  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。是一个带有Spring Boot的多模块项目,该项目将有3个模块。这里是父模块pom。xml 这里是模块核心 这里是模块web: 从父根目录,我使用以下方法生成所有模块: 但问题是tdk-web-0.0.2-SNAPSHOT。jar不包含tdk-c