Gradleは元々の作りが非常にブラックボックスなため、設定されたオブジェクトのライフサイクルがわかりづらいなどの問題があり、Gradle3に向けて、それを修正している最中です。その中核となるのがRule Based Model Configurationという仕組みです。 その仕組については以前にもエントリーを書いているので、そちらを参照してください。 mike-neck.hatenadiary.com 基本的な考え方は 値オブジェクトの生成(プラグインが値オブジェクトを生成する) 値オブジェクトの設定(ユーザーがオブジェクトの中の値を変更できる/mutableなオブジェクト) 値の利用(ユーザーもプラグインも値を変更できない/immutableなオブジェクト) という流れにそって設定を記述していくという考え方です。 では、Javaプロジェクトはどのように変わっていくかを今回は簡単に説明