首页 文章

带 spring 靴的多模块项目

提问于
浏览
5

我正在用 spring-boot 创建一个项目 .

Spring启动maven结构要求它具有定义为 spring-boot-starter-parent 的父级 .

我有一种情况,我想将我的应用程序打包为一个多模块结构,我在其中定义包含与地理相关的功能的模块 .

像这样的东西,每个模块都有一个 jar 包装,

parent Pom
|
|-----------Core module
|
|-----------India Module
|
|----------Africa Module
|
|--------- Europe Module

现在,我可以根据地理位置使用maven配置文件打包我的应用程序,其中在印度配置文件中仅包含和打包核心模块和印度模块 .

如何使用Spring引导来实现它,其中我的父级已定义为 spring-boot-starter-parent

3 回答

  • 0

    有两种方法可以做到,

    • 在父pom中使用dependencyManagement,如
    <dependencyManagement>
        <dependencies>
           <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <type>pom</type>
            <version>1.2.3.RELEASE</version>
            <scope>import</scope>
        </dependency>
    </dependencies>
    
    • 这就是我这样做的方式 . 根POM(带有pom包装)有 spring 靴作为父母
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.2.3.RELEASE</version>
    </parent>
    

    模块poms将root pom作为父级 . POM添加的核心模块依赖于其他模块 . 它还有'spring-boot-maven-plugin'来制作胖 jar .

    spring上下文以java -jar Core_xxx.release.jar启动

    当然,如果你有组织明智的父母POM,那么第一选择会更合适 .

  • 1

    现在,您可以使用官方Spring guidline解决该问题并创建Spring Boot多模块项目 . 只需按照说明https://spring.io/guides/gs/multi-module/

  • 10

    我不是特别了解Spring Boot .

    但是通常使用Spring可以通过常见的配置包来完成 . 因此,在您的主应用/配置中,您执行以下操作:

    @Configuration
    @ComponentScan("com.example.common.bootstrap")
    

    然后,您可以将模块特定的配置放在每个模块的引导程序包中 . 所以只需创建一个com.example.common.boostrap.AsiaModule和com.example.common.bootstrap.EuropeModule作为Spring配置,你就是好的 .

相关问题