3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gradle マルチプロジェクトで、特定のプラグインをapplyしているサブプロジェクトのみ設定を継承させる。

Last updated at Posted at 2015-02-13

サブプロジェクトごとに異なるプラグインを適用していて、かつ特定のプラグインを適用しているプロジェクトにのみ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"
        }
    }
}
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?