2016-02-28 81 views
1

我有一個測試版大約設置了這樣的多項目gradle這個編譯:運行在多項目gradle這個所有微服務構建

RootProject 
- ServiceA 
- ServiceB 
- ServiceC 
- UI 

每個子項目的是使用Spark框架和運行的嵌入式Web服務器。它基本上是一個微服務設置,因此它們都需要爲整個系統啓動並運行。

他們每個人都有這樣定義的任務:

task runApp(type: JavaExec) { 
    main = 'App' 
    classpath = sourceSets.main.runtimeClasspath 
} 

我知道我可以手動或者通過我的IDE或打開不同的終端對每個分項工程和運行gradlew ServiceA:runApp啓動每個服務,但我我想要做的就是在根目錄創建一個runSystem任務,它將啓動所有內容,以便在開發過程中輕鬆運行整個系統。

我該怎麼用Gradle做到這一點?

+0

如果在根項目中運行runApp,會發生什麼情況? – RaGe

回答

2

如果您在根項目上運行任務,Gradle會在所有子項目上調用相同的任務(如果存在)。只需從根文件夾執行runApp即可。

在你的情況下,你的runApp任務可能不會退出,因爲它啓動了一個服務器,所以執行不會移動到下一個項目。您可以啓用並行執行,也可以修改任務以在後臺運行服務器任務(使用ProcessBuilder

相關問題