複数のプロジェクトには、それぞれ別のbuild.gradleが必要になるが、大きく共通化したい処理も当然ながら存在する。これらを、プロジェクトごとのbuild.gradleとは別の共通ファイルに追い出し、各build.gradleはそれを読み込むようにしたい。fromでの取り込みが、そう簡単にはいかない。defはローカルまとめgradle.propertiesまず、ユーザホームディレクトリ/.gradleの中のgradle.propertiesであるが(Windowsの場合はc:\users\ユーザ名\.gradle\gradle.properties)、これはいわゆるproperties形式であって、プロパティしか記述することはできない。これはすべてのbuild.gradleがデフォルトで読み込んでいるため、ここに別の共通ファイルの場所を記述することにする。gradle.propertiesは、例えば以下のようになる(注意:ここではバックスラッシュは使えない)。Files/Java/jdk1.8.0_112COMMON_GRADLE=C:/Foo/Bar/common.gradle初期化スクリプトなお、ここで実現する仕組みとは別に初期化スクリプトというものがある。これで用が足せるのであれば、こちらを使った方がよいだろう。ここでは「ユーザホーム」以外の場所に共通処理を置きたかったので、別の方式を採用している。fromを使って読み込む。'eclipse'....あとは、最初に指定したように、「C:/Foo/Bar/common.gradle」というファイルに好きな設定を書けばよい。ものの本やウェブの書き込みには「build.gradleに取り込まれるだけなので、build.gradleと同じ記述ができる」とするものもあるが、しかし、どうやっても同じ記述はできない。クラスも関数も定義できない。いう仕組みになっているのか(gradleではいつものことなのだが)全く理解できない。Q&A掲示板のようなところで、gradle開発者と思しき人物が答えている場合もあるのだが、彼は「ここを見ろ」といったようなまとまった文書を示しもしていないので、そういったものも無いのかもしれない。プロパティの定義はできるようである。タスクの定義はできる。common.gradleは例えば以下のようになる。123}あまたのウェブの例を参考にやってみても、これ以外の方法ではマトモに動かなかった。結局はextの中でプロパティを定義する以外のことはできないようだ。上記のようにtaskは自由に定義できる。defはローカルGroovyの仕様上、defは「ローカル」なのだという。このローカルの意味が明確にわからないのだが、おそらくはファイルが分割されていると参照ができないものと思われる。extプロパティに入れれば参照は可能になる。GETINT(222)}まとめ以上で、少なくともすべてのbuild.gradleにおいて、共通の変数(及びそこに格納されたクロージャ)を定義することはできる。良い方法もあるかもしれないが、少なくとも私にとっては十分であるので、とりあえずこれで行く。これをEclipse-IDE環境で利用する便利な方法については、GradleのEclipseプラグインの処理結果を変更を参照のこと。scanの使い方、その1の続きである。...Gradle:スコープとプロパティGradleのスコープの仕組みはとてもわかりにくい。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。