2015-04-16 63 views
6

我只是一兩天到使用gradle這個的Gradle調用「構建」任務中的另一個項目

在我目前的build.gradle腳本我有,我想打電話給建設任務,在另一個項目任務(即在其他地方定義一個不同的build.gradle)在每次執行後

我的問題是如何從另一個項目中調用任務?

我想我想做一些像tasks.build.execute()但它似乎不工作。我試過這個:

commandLine "${rootDir}\\gradle", 'build', 'eclipse' 

它至少爲我當前的項目執行build和eclipse,而不是主項目。希望我的問題是清楚的

+0

我能夠引用任務根項目,但當我這樣做 rootProject.tasks.build.execute() 它似乎並沒有正確執行 – hamad32

+0

什麼是不正確的工作? – Opal

回答

12

首先閱讀: http://gradle.org/docs/current/userguide/multi_project_builds.html

如果你有一個多項目建設 您需要的是包含的東西,如settings.gradle文件根項目:

include 'myproject1' 
include 'myproject2' 

比你可以只是從一個項目到另一個這樣的依賴:

myproject1/gradle.build

task someOtherTask() << { 
    println 'Hello' 
} 

myproject2/gradle.build

task sometask(dependsOn: ':myproject1:someOtherTask') << { 
    //do something here 
} 

或者,如果你要調用一個任務:

project(':myproject1').tasks.build.execute() 

注意:您要申請Java插件,使構建的任務可用。

+0

經過對Gradle產品中依賴管理的大量搜索之後,這就是讓我的工作成爲可能的答案。謝謝! –

+1

很好的答案,取決於訣竅 –

11

調整構建文件路徑等:

task buildSomethingElse(type: GradleBuild) { 
    buildFile = '../someOtherDirectory/build.gradle' 
    tasks = ['build'] 
} 

build.finalizedBy('buildsomethingElse') 

參考:搖籃組織建立邏輯導第59.5

您可以將此到另一個螞蟻項目中,通過在你的Ant項目添加一行的build.gradle文件,該文件只是調用螞蟻,就像這樣:

ant.importBuild 'build.xml' 
相關問題