サブプロジェクトごとに異なるプラグインを適用していて、かつ特定のプラグインを適用しているプロジェクトにのみsubprojectで設定を適用させたい場合、以下のように設定できます。
rootのbuild.gradle
subprojects { subProject ->
group = 'jp.oreore.oreno.project'
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
afterEvaluate {
//以下のプラグインIDを含むときに特定の設定を行う
def tPluginIds = [
//androidアプリ
'com.android.application', 'android',
//androidライブラリ
'com.android.library', 'android-library'
]
//gradle 1.12以前の場合、plugins.hasPlugin、それ以降の場合、plugins.withIdが利用できます。
//それぞれのメソッドはプラグイン識別子を指定して、プラグインがapplyされていればtrueを返します。
//apply 'oreore.plugin'している状態で、plugins.hasPlugin('oreore.plugin')をするとtrueが返ります。
if (tPluginIds.any { id -> subProject.plugins.hasPlugin(id) }) {
//Androidプロジェクトのグローバル設定
//ここでプラグインに依存する設定を書くことができます。
android.compileSdkVersion 20
android.buildToolsVersion "21.1.2"
}
}
}