使用Maven部署多个Spring Boot模块

时间:2016-09-17 14:04:19

标签: spring maven spring-boot

我创建了两个独立的maven模块(让我们称之为MODULE1MODULE2),它们是第三个集成模块(SUPERMODULE)的子模块。

MODULE1MODULE2都是Spring Boot Web应用程序。我想要实现的是通过SUPERMODULE开始(而不是构建)项目/网络应用程序。

我认为,有两种选择:

  1. 将它们部署到同一个tomcat服务器(可能是更好,更有趣的解决方案)
  2. 将它们部署到具有不同端口的不同tomcat服务器
  3. 我发现没有可行的例子来实现这些选项中的任何一个(......通过单个maven集成项目)。因此,如果有人能指出我正确的方向,或者两种可能都是不好的做法,我会很高兴吗?

1 个答案:

答案 0 :(得分:0)

你说:

  

将它们部署到同一个tomcat服务器

(1)Build automation software

任何Build Automation工具(Jenkins,bamboo ......)都允许您创建一个将您的战争部署到tomcat的作业(相同的服务器或不同的服务器,您可以根据需要设置您的作业)。

您使用的是自动化软件吗?我相信这将是最好的解决方案/最佳实践。

(2)构建EAR - 部署到Tomee

你说:

  

我想要实现的是启动(而不是构建)两个项目/网络   应用程序通过SUPERMODULE。

你真正描述的是EAR!

我将描述这个想法,但是,似乎Spring引导不能很好地与EAR配合使用:Spring Boot EAR Packaginghttps://github.com/purple52/spring-boot-ear-skinny-war

由于你的2个子模块是spring boot app,你可以:

  • 将子模块构建为WAR
  • 让您的Supermodule构建一个EAR
  • 在EAR中包含两个WAR(maven依赖关系)
  • 这个然而暗示您使用(例如)Tomee而不是tomcat(这是一个选项吗?)。
  • 如上所述,经过一些研究,看起来弹簧启动战在包装在EAR中时不起作用。 SpringServletContainerInitializer未被调用。所以目前这不是一个选择。