2017-07-30 50 views
0

我有基於Spring的Web應用程序,我試圖捆綁到一個單一的罐子。包裝彈簧子項目到一個罐子

我對項目佈局的想法是讓一個包含多個子項目的根項目,其中一個子項目是一個spring-boot應用程序,其他子項目可能是我自己寫的代碼處理某些業務邏輯讓我們說。

所以結構可以是這樣:

/root 
build.gradle <- the problem is here, how I should write root project build script 
/spring-backend-subproject 
/other-business-subproject 

擁有所有這些子項目,我想他們都打包成一個單獨的JAR,這樣我可以做

java -jar build/libs/RootJar.jar 

否則我需要運行:

./gradlew bootRun 

它將在「spring-boot」中運行特定的主類,子項目

我一直在爲如何將所有子項目罐子捆綁成一個罐子,如網上搜索這一個:Can Gradle jar multiple projects into one jar? 但我常常只是最終有錯誤,如主類未找到(不如果我在「spring子項目」文件夾中專門運行jar)或SpringApplication類未找到(如果在子項目文件夾中運行jar,則不會發生)

我該如何解決此問題?

謝謝!

回答

1

我廣泛使用這種模式。不要試圖將部署類放入根目錄,而是添加一個模塊(我通常將其稱爲-launcher),該模塊將其他模塊列爲依賴關係,幷包含您的主類和相關應用程序代碼,例如您可能擁有的任何application.properties

該模塊將產生一個神器my-project-launcher.jar,並將其部署到您正在使用的任何平臺。

+0

啊,我明白了。好的解決方案,謝謝! –

+0

但我不能得到一個罐子 –