如何以并行模式在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)

我得到了一个Gradle任务,它调用了两个方法。这些方法相互独立,所以我想让它们并行运行。实现这一目标的最佳方式是什么

例如:

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)})
}