gpt4 book ai didi

gradle - 在gradle任务中并行化代码

转载 作者:行者123 更新时间:2023-12-03 03:50:21 24 4
gpt4 key购买 nike

我有一个基本上执行以下任务的任务:

['subproj1', 'subproj2'].each { proj ->
GradleRunner.create()
.withProjectDir(file("./examples/${proj}/"))
.withArguments('check')
.build()
}

该检查是一项系统测试,需要连接到第三方服务,因此我想对此进行并行化。

可以在gradle中完成吗?如果是这样,怎么办?

我尝试使用Java线程,但是构建失败,并出现错误,我不记得它们的确切含义,但它们表明gradle内部状态已损坏。

最佳答案

您是否尝试使用实验性并行任务执行?乍一看,这很简单。您只需要调用./gradlew --parallel check(或者事实证明工作正常,您也可以在gradle.properties中定义它)。这将启动将执行任务的n个线程(其中n是cpu核心数)。每个线程拥有一个特定的项目,因此一个项目的任务将永远不会并行执行。

您可以通过在命令行中设置属性--max-workers或在gradle.properies中设置org.gradle.workers.max=n来覆盖任务(或工作程序)的数量。

如果您只想并行执行测试,则可以尝试设置Test.setMaxParallelForks(int)。这将导致并行地(根据您定义的任务数量)执行一个项目的测试(如果我理解这一权利)。

希望能有所帮助。也许gradle文档为您提供了更多见解:https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:parallel_execution

关于gradle - 在gradle任务中并行化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37362127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com