我有一个 gradle 构建过程,它动态生成一个包含约 200 个同质、CPU 密集型处理任务(所有任务类型相同)的列表。 此列表中的任务不相互依赖,但在我的构建中它们具有共同的祖先和共同的后代。
看起来 gradle 没有内置的方法让我并行处理这些。(我看到的唯一并行抽象与解耦项目有关)。
有什么我可以在上面应用的技术,还是我被卡住了?
例如,我可以动态创建n
项目(以某种方式与主项目“解耦”以满足 Gradle 的并行处理要求),每个项目都有1/n
我需要的任务吗?
我有一个 gradle 构建过程,它动态生成一个包含约 200 个同质、CPU 密集型处理任务(所有任务类型相同)的列表。 此列表中的任务不相互依赖,但在我的构建中它们具有共同的祖先和共同的后代。
看起来 gradle 没有内置的方法让我并行处理这些。(我看到的唯一并行抽象与解耦项目有关)。
有什么我可以在上面应用的技术,还是我被卡住了?
例如,我可以动态创建n
项目(以某种方式与主项目“解耦”以满足 Gradle 的并行处理要求),每个项目都有1/n
我需要的任务吗?
属于同一项目的任务目前无法并行执行。您可以编写脚本settings.gradle
来创建许多子项目并编写脚本build.gradle
来为项目分配任务,但这可能不是一个非常方便的解决方案。另一种选择是让单个任务在内部并行化工作(例如,使用GPars库)。