2016-09-17 59 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未被調用。所以目前這不是一個選擇。
相關問題