运行在多项目gradle这个所有微服务构建
问题描述:
我有一个测试版大约设置了这样的多项目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做到这一点?
答
如果您在根项目上运行任务,Gradle会在所有子项目上调用相同的任务(如果存在)。只需从根文件夹执行runApp
即可。
在你的情况下,你的runApp任务可能不会退出,因为它启动了一个服务器,所以执行不会移动到下一个项目。您可以启用并行执行,也可以修改任务以在后台运行服务器任务(使用ProcessBuilder
)
如果在根项目中运行runApp,会发生什么情况? – RaGe