Spring boot 如何配置gradle来启动和停止构建完成后仍保持活动状态的spring boot微服务?

Spring boot 如何配置gradle来启动和停止构建完成后仍保持活动状态的spring boot微服务?,spring-boot,gradle,microservices,Spring Boot,Gradle,Microservices,我正在开发一个应用服务器,它依赖于两个配置为spring boot微服务的模拟器。我们最近将仿真器从根项目提取到一个单独的存储库中,因为其他一些项目也在使用仿真器,这对于项目间维护来说效果更好。我希望能够从主项目根目录运行这些模拟器,而不必签出它们的存储库并从该目录运行。我们在gradle集成测试中执行类似的操作——我们使用ExecFork()启动这两个进程。这里的问题是,当构建完成时,进程就会死亡 我所寻找的是类似于此的东西,这样我就可以运行例如/gradlew startEmulators,

我正在开发一个应用服务器,它依赖于两个配置为spring boot微服务的模拟器。我们最近将仿真器从根项目提取到一个单独的存储库中,因为其他一些项目也在使用仿真器,这对于项目间维护来说效果更好。我希望能够从主项目根目录运行这些模拟器,而不必签出它们的存储库并从该目录运行。我们在gradle集成测试中执行类似的操作——我们使用ExecFork()启动这两个进程。这里的问题是,当构建完成时,进程就会死亡

我所寻找的是类似于此的东西,这样我就可以运行例如
/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
,构建才会完成。它垄断了一个终端窗口,但我现在可以接受