首页 > 解决方案 > 如何正确设置 Maven Spring Boot 多模块项目?

问题描述

经过一些研究尝试失败后,我仍然无法清楚地解决以下问题:

Project-All - "Ability to combine Module #1 & Module #2 and to run in dev (Test full solution)"
|
+ Module_1 - "Ability to run independently in dev (Different dev team)"
| - pom.xml
+ Module_2 - "Ability to run independentlyin dev (Different dev team)"
| - pom.xml
- pom.xml

我想分别构建和运行 module_1 和 module_2 以及组装。在尝试了针对 Maven 的组装插件但没有取得显着成功(或过于复杂的解决方案)之后,我现在正在尝试使用Spring Boot Plugin for Maven,这似乎更易于使用。

那么对于如何使用Spring Boot Plugin for Maven正确构建此类设置,我们有什么建议吗?

谢谢

标签: javaspring-bootmavenmulti-module

解决方案


这是您可以尝试的一种方法:

在主模块 POM 中,您可以使用 maven 发布插件,如下所示:

...
<packaging>pom</packaging>
   <modules>
      <module>module1..</module>
      <module>module2..</module>
</modules>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
                <goals>install</goals>
                <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
        </plugin>
    </plugins>
</build>

如果您希望以它们可以自行运行的方式构建子模块:

您可以在模块 pom 中使用 maven repckage 目标,如下所示:

 <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

有可能在此配置中提供主类的名称。查看官方文档


推荐阅读