我有一个monorepo设置,如:
monorepo
build.gradle
/api
build.gradle
/webapp
build.gradle
我有两个独立的任务来构建和运行开发服务器::api:bootRun
和:webapp:runDev
中的一个或多个。
是否可以让这两个任务并行运行?在运行构建任务bootJar
之前,这两个任务彼此不依赖--这超出了范围。
我目前正在尝试使用GPars
解决这个问题,但没有效果:
tasks.register("dev") {
def tasksToRun = ['api:bootRun', 'webapp:runDev']
GParsPool.withPool { ExecutorService svc ->
tasksToRun.each { taskToRun ->
svc.submit({runDevTaskFromProject(tasksToRun)})
}
}
}
def runDevTaskFromProject(String projectTask) {
try {
String[] components = projectTask.split(':')
GradleRunner.create()
.withProjectDir("$projectDir/" + components[0])
.withArguments(components[1])
.forwardOutput()
.build()
} catch (Exception e) {
println "Run Failed " + e
return
}
}
有没有更好的方法来实现这一点-或者我需要基于Workers API
编写一些东西来促进这一点?
1条答案
按热度按时间blpfk2vs1#
所以事实证明我不需要像我在问题中提出的那样变魔术;下面的代码并行地(或者看起来如此)执行这两个:
可以使用
gradle dev
调用