Gradle:并行运行子项目的任务

时间:2014-02-12 02:40:44

标签: parallel-processing gradle task subproject

我的项目结构看起来像

Root + subproj1
     + subproj2

在每个子项目中定义了自己的任务run(){}。 我要做的是运行:subproj1:run,:subproj2:从Root项目的运行任务并行运行。 我试过root项目的build.gradle

task run(){
  def threads = 2
  def tasks = [ ":subproj1:run", ":subproj2:run" ]
  tasks.each {
    new Thread(){
      public void run(){
        dependsOn it
      }
    }.start();
  }
}

但它像

一样例外
Exception in thread "Thread-12" org.gradle.api.UnknownProjectException:
Project with path ':subproj1:run' could not be found in root project 'ROOT'

我如何从根项目并行运行子项目的任务?

2 个答案:

答案 0 :(得分:2)

使用gradle 2.1它应该开箱即用。一个解决方案是 - 像Perryn说的​​那样平行,或者你将org.gradle.parallel:true设置为你的gradle.properties。然后你应该能够运行" gradle run"在根项目中,两者都应该并行执行。

我还将未声明的项目耦合=失败放入gradle.properties以了解它们是否已耦合并且不能并行执行。

答案 1 :(得分:1)

您是否尝试过查看--parallel命令行选项?