2014-10-03 50 views
2

我有一個使用apply from調用各種其他gradle腳本的Gradle構建。主要的build.gradle和每個子腳本都使用相同的構建腳本插件(特別是gradle-cargo-plugin)。如何避免每個構建腳本中出現重複的插件聲明?

我已經成功地得到這個工作的唯一方法是重複每個腳本插件的聲明:

build.gradle

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1' 
    } 
} 

apply from: 'other.gradle' 

// do something with the cargo plugin 

other.gradle

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1' 
    } 
} 

// do something else with the cargo plugin 

正如您所看到的,每個腳本都會重複buildscript部分。更改該依賴關係變得單調乏味且容易出錯,但子腳本不會繼承主build.gradle的依賴關係。

有沒有辦法清除它,要麼允許被調用的腳本繼承buildscript依賴關係,要麼通過不同的方式委託給子腳本而不是使用apply from

回答

0

Gradle 2.1對我來說很好。在腳本插件中可以看到在build.gradlebuildscript塊中聲明的構建腳本。

新插件門戶(http://plugins.gradle.org/)中的插件可以應用在一行中,並且不需要buildscript塊(使用Gradle 2.1和更高版本)。

+0

我認爲這不是答案。當然,在兩個文件中複製buildscript的OP將會起作用。但是OP在問一個解決方案,他可以在其中聲明一個構建依賴關係,從中可以繼承其他的gradle腳本文件。它不關於插件的buildscript的可見性 – cherit 2017-06-06 20:43:05