带弹簧靴的多模块项目

时间:2015-05-13 06:50:25

标签: java spring maven

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

Spring引导maven结构要求它具有定义为spring-boot-starter-parent的父级。

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

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

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

现在,我可以使用maven配置文件打包我的应用程序,其中在印度配置文件中仅包含核心模块和印度模块并打包。

如何使用我的父级已经定义为spring-boot-starter-parent的spring boot来实现它?

3 个答案:

答案 0 :(得分:10)

有两种方法可以做到,

  1. 在父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>
    

  2. 这就是我这样做的方式。根POM(带有pom包装)有弹簧引导作为父

    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.2.3.RELEASE</version>
    </parent> 
    
  3. 模块poms将root pom作为父级。 POM添加的核心模块依赖于其他模块。 它还有'spring-boot-maven-plugin'来制作胖罐。

    使用java -jar Core_xxx.release.jar

    启动spring上下文

    当然,如果您有组织明智的父POM,那么第一个选项会更合适。

答案 1 :(得分:1)

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

指示操作即可

答案 2 :(得分:0)

我不太了解Spring Boot。

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

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

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