如何正确设置 Maven Spring Boot 多模块项目?
Posted
技术标签:
【中文标题】如何正确设置 Maven Spring Boot 多模块项目?【英文标题】:How to properly setup maven Spring Boot multi module project? 【发布时间】:2020-11-01 02:46:31 【问题描述】:在一些研究尝试失败后,我仍然无法清楚地解决以下问题:
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
我想分别构建和运行模块_1 和模块_2,以及组装。在尝试 Assembly Plugin for Maven 没有取得显着成功(或过于复杂的解决方案)之后,我现在尝试使用 Spring Boot Plugin for Maven,这似乎更易于使用。 p>
那么对于如何使用 Spring Boot Plugin for Maven 正确构建此类设置,我们有什么建议吗?
谢谢
【问题讨论】:
一个模块是否依赖于另一个模块,或者它们完全不相关?在哪个模块中有@SpringBootApplication
的主类?
它们不相关。主类在 Module_1 中,但在组装后形成一个应用程序(例如 - 产品目录和管理面板)
【参考方案1】:
这是您可以尝试的一种方法:
在主模块 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>
有可能在此配置中提供主类的名称。 查看官方documentation
【讨论】:
谢谢@SwapnilKhante 去试试,会告诉你的。以上是关于如何正确设置 Maven Spring Boot 多模块项目?的主要内容,如果未能解决你的问题,请参考以下文章
通过 Maven 为 Spring Boot 应用程序创建 AWS Beanstalk 的 .ebextensions 的正确方法是啥
如何使用 Spring Boot 将 Log4j 添加到 maven 项目