2014-02-12 210 views
3

我的項目結構運行子項目的任務是像搖籃:並行

Root + subproj1 
    + subproj2 

在每個子工程中定義了自己的任務的run(){}。 我想要做的是運行:subproj1:run,:subproj2:從根項目的運行任務並行運行。 我試着在根項目的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' 

異常如何我可以並行地從根項目跑分項目的任務是什麼?

+0

爲什麼不能直接調用'Thread.start'?爲什麼你需要'new Thread()... public void run()...'。 –

回答

0

你有沒有試過看--parallel命令行選項?

2

使用gradle 2.1,它應該可以開箱即用。一種解決方案是 - 像Perryn說的​​那樣平行,或者你將org.gradle.parallel:true設置爲你的gradle.properties。然後,你應該能夠在根項目中運行「gradle run」,並且兩者應該並行執行。

我還將未聲明的項目耦合=失敗放入gradle.properties中,以確定它們是否耦合並且不能並行執行。