3

私のプロジェクト構造は次のようになります

Root + subproj1
     + subproj2

各サブ プロジェクトで、独自のタスク run(){} を定義しました。私がやろうとしているのは、ルートプロジェクトの実行タスクから並行して:subproj1:run、:subproj2:runを実行することです。ルートプロジェクトの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'

サブプロジェクトのタスクをルートプロジェクトから並行して実行するにはどうすればよいですか?

4

2 に答える 2

2

gradle 2.1 では、そのままで動作するはずです。1つの解決策は、Perrynが言ったように --parallel か、gradle.propertiesにorg.gradle.parallel:trueを設定することです。そして、ルートプロジェクトで「gradle run」を実行できるようになり、両方が並行して実行されるはずです。

また、undeclared-project-coupling=fail を gradle.properties に入れて、それらが結合されており、並列で実行できないかどうかを確認します。

于 2014-11-03T15:25:33.823 に答える
0

--parallel コマンド ライン オプションを調べてみましたか?

于 2014-02-12T08:58:25.413 に答える