簡體   English   中英

我如何配置gradle以啟動和停止在構建完成后仍然有效的Spring Boot微服務?

[英]How can I configure gradle to start and stop spring boot microservices that stay alive after build completion?

我正在開發一個應用程序服務器,該服務器依賴於配置為Spring Boot微服務的兩個仿真器。 最近,我們將仿真器從根項目中提取到一個單獨的存儲庫中,因為其他一些項目也正在使用它們,這對於項目間的維護更好。 我希望能夠從主項目根目錄運行這些仿真器,而不是必須檢出它們的存儲庫並從該目錄運行。 我們在gradle集成測試中做了類似的事情-我們正在使用ExecFork( https://github.com/psxpaul/gradle-execfork-plugin )啟動這兩個過程。 這里的問題是,當構建完成時,進程會終止。

我正在尋找的與此類似,因此我可以運行例如./gradlew startEmulators並讓兩個仿真器簽出指定的版本,並阻止gradle任務(占用命令窗口,ctrl-c停止)或超過gradle任務。 阻止它們的功能也很方便,但是在這一點上這是一種意願而不是必須具備的能力。

我也將采用替代gradle的解決方案,但最好不要太復雜-這需要我可以簡單地向開發團隊發布說明

答案最終有點麻煩,但是可以。 基本上,它看起來像這樣:

task runEmu1(type: com.github.psxpaul.task.JavaExecFork) {
     //execfork stuff
}
task runEmu2(type: com.github.psxpaul.task.JavaExecFork) {
     //execfork stuff
}
task runEmus() {
    dependsOn('runEmu1', 'runEmu2')
    doLast {
        ant.input(message: 'Press enter to shut down emulators')
    }
}

在並行進程中運行兩個仿真器,它們會在構建結束時殺死自己。 當然,直到將輸入提供給ant.input ,構建才會完成。 它壟斷了一個終端窗口,但我現在可以忍受

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM