如何以并行模式在Gradle中运行两个方法?
我得到了一个Gradle任务,它调用了两个方法。这些方法相互独立,所以我想让它们并行运行。实现这一目标的最佳方式是什么 例如:如何以并行模式在Gradle中运行两个方法?,gradle,groovy,Gradle,Groovy,我得到了一个Gradle任务,它调用了两个方法。这些方法相互独立,所以我想让它们并行运行。实现这一目标的最佳方式是什么 例如: task cucumber(dependsOn: 'testClasses') { doLast { // ... // I want to call the next 2 methods in parallel runSequentialTests(testEnvironment, tags)
task cucumber(dependsOn: 'testClasses') {
doLast {
// ...
// I want to call the next 2 methods in parallel
runSequentialTests(testEnvironment, tags)
runParallelTests(testEnvironment, tags)
}
}
def runSequentialTests(testEnvironment, tags) {
// execute cucumber tests via javaexec
}
def runParallelTests(testEnvironment, tags) {
// execute cucumber tests via exec sh script for each feature file (parallelism is done via GParsPool.withPool(5) {...}
}
值得研究的groovy并行系统库 或者创造一个 但我不确定你用的是什么版本的gradle。平行性是一种孵化特征 并且需要使用--parallel运行构建,如果它们之间没有依赖关系,Gradle应该独立运行它们 或者,您可以在
gradle.properties
C:\Users\\.gradle\gradle.properties
org.gradle.parallel=true
我使用了GPAR的异步调用:
我用它来处理这个。谢谢
GParsPool.withPool {
GParsPool.executeAsyncAndWait({runSequentialTests(testEnvironment, tags)}, {runParallelTests(testEnvironment, tags)})
}
GParsPool.withPool {
GParsPool.executeAsyncAndWait({runSequentialTests(testEnvironment, tags)}, {runParallelTests(testEnvironment, tags)})
}