gradle - 在多项目 gradle 构建中运行所有微服务

标签 gradle microservices

我有一个多项目 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)

关于gradle - 在多项目 gradle 构建中运行所有微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35684313/

相关文章:

java - 没有 Spring-boot 的 Eureka 服务发现

java - 状态 404,在带有微服务的 SpringBoot 中找不到

java - 微服务和消息传递 : Message Content

java - 使用 gradle/intellij 删除和添加项目依赖项

跨子模块集成测试的 Gradle Jacoco 测试覆盖率

android - 如何检查模块的 build.gradle 中的构建变体

gradle - Gradle构建-解决下载文件中的依赖关系

amazon-web-services - AWS EKS Kubernetes Pod 需要花费大量时间才能准备就绪

android - Realm Gradle 插件似乎破坏了 Dagger 的 apt 代码生成

java - Gradle 在构建的 jar 中复制依赖项