gradleでライブラリをインストールした場合、ライブラリはコンパイル済みなのでコードを変更してアプリと一緒に動かしてみるということが気軽に出来ない。
ライブラリをアプリのプロジェクトからプロジェクト参照すればライブラリの修正・動作確認が非常に楽になるのでおすすめ。手順は以下。
- settings.gradleを書き換え、ライブラリプロジェクトをincludeする。ライブラリプロジェクトのPathを設定する。
// 例
include ':app', ':lib'
project(':lib').projectDir = new File(settingsDir, '../mylib/lib')
- build.gradleのdependenciesを書き換え、ライブラリプロジェクトをコンパイル対象とする
dependencies {
// 例
//compile 'jp.co.sample:lib:1.0.0-SNAPSHOT@aar'
compile project(':lib')
}
注意点は以下
- ライブラリのprojectDirはプロジェクトルート(settings.gradleなどがある階層)でなく、その一つ下の階層(build.gradleやproguard-rules.proなどがある階層)にする。プロジェクトルートにするとビルドエラーになった。
- プロジェクトルートにあるbuild.gradleは実行されないので、buildscriptオブジェクトの設定などはその一つ下の階層のbuild.gradleにコピーする必要がある。
設定が重複するのがいやだったのでapply fromコマンドでプロジェクトルートにあるbuild.gradleを読み込むようにしたが、ビルドエラーになった。原因はbuildscriptオブジェクトは各gradleファイル毎に異なるインスタンスが生成されるため。
設定を変更してビルドするとProjectペインにライブラリプロジェクトが現れ、アプリと同じようにコードを変更できるようになる。
これでライブラリ変更の生産性がかなり上がった。おすすめです。
参考: