2016-09-17 61 views
2

我创建了两个独立的Maven模块(我们称之为MODULE1MODULE2),它们是第三个集成模块(SUPERMODULE)的子模块。使用Maven部署多个Spring Boot模块

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

在我看来,有两种选择:

  1. 他们都部署到同一个Tomcat服务器(可能是更好的&更有趣的解决方案)
  2. 将它们部署到不同的端口
  3. 不同Tomcat服务器

我发现没有可行的例子来实现这些选项(...通过一个单一的maven集成项目)。因此,如果有人能将我指向正确的方向,或者两种可能性都是不好的做法,我会很高兴。

+0

“或者都是可能性不好的做法?”这取决于。如果您正在讨论从本地计算机\ dev环境进行部署,那么是的。或者,如果您试图用构建服务器推出,那么这可以通过多种方式实现。马克货车插件马上想到。 – javamonkey79

回答

0

你说:

他们都部署到同一个Tomcat服务器

(1)Build automation software

任何构建自动化工具(詹金斯,竹...)将允许你创建一个将你的战争部署到tomcat的工作(同一台服务器或不同的服务器,你可以根据需要设置你的工作)。

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

(2)构建一个EAR - 部署到Tomee

你说:

我试图做到的,是开始(未建)两个项目/网络 应用借助于SUPERMODULE。

你真正描述的是一个EAR!

我将描述的想法,但是,似乎春天开机不与EAR踢好:Spring Boot EAR Packaginghttps://github.com/purple52/spring-boot-ear-skinny-war

因为你的2子模块春天启动的应用程序,你可以:

  • 将子模块构建为WAR
  • 让您的Supermodule构建EAR
  • 包括EAR中的两个WAR(maven dependencies)
  • 这个但是意味着你使用(例如)Tomee而不是tomcat(这是你的选择吗?)。
  • 如上所述,经过一番研究,似乎弹簧引导战在EAR封装内不起作用。 SpringServletContainerInitializer未被调用。所以目前这不是一个选择。
相关问题