ticktakclockの日記

技術ポエムを綴ったりします。GitHub idも同じです (@ticktakclock)

gradleのライブラリ依存関係を出す

こんにちは、tkyです。

Android小ネタ集です。色々なブログでも書かれている内容で、ほぼ自分用として書いておきます。

Dependency treeが見たい時、ありますよね?

(ライブラリを特定のバージョンに上げると何故か別の機能がバグるみたいなことがたまにありますそれを解析するためにやったりします。)

先に結論から記載すると以下のようになります。(ファイル出力するかどうかはお好みで)

./gradlew :app:dependencies --configuration developDebugRuntimeClasspath > dependency.txt

configurationについて

./gradlew :app:dependencies だけでコマンドは動きますが、これだと全ビルドバリアント(buildType x productFlavor)分調べるのでめちゃめちゃ時間かかります。

そのためvariantが developDebug(buildType=debug, productFlavor=develop)の時だけ調べるようにしています

調べたいvariantによってここは変えると良いでしょう。

また、RuntimeClasspathのほかにCompileClasspashもあります。

RuntimeClasspath のほうがgradleの dependencies{} ブロックに記述したライブラリの依存ツリーとして見れるので関係性を整理する意味でこちらのほうが可視性が高いかなと思いこちらを使っています。

もうすこしRuntimeとCompileの指定方法による違いを調べたかったのですが今日はここまで。。。

以上、コピペで使えるDependency treeでした。


2020/10/13 追記

こんな感じで .bash_profile とかにalias作っておくといちいちタイプしなくて良いので便利です。

alias dependency='./gradlew :app:dependencies --configuration developDebugRuntimeClasspath > dependency_`date "+%Y%m%d_%H%M%S"`.txt'