繁体   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