目录
一. 问题
今天想看下包依赖关系,想把重复的包依赖干掉,搞了好久哦,反正就是Android Studio 巨慢各种不配合;
搞完了,然后简单记录一下;
有些group-id: com.android.support 源码,发现Android Studio 里找不到源码;
## 镜像仓库
https://maven.aliyun.com/mvn/guide
## 查询仓库
https://maven.aliyun.com/mvn/search
然后去这个仓库连接中,选择适当的group-id,artifact-id,version,即可;
二. 命令
# 解析Modules 依赖
## 单节点
./gradlew -q :app:dependencies --configuration implementation
## 完整性节点
./gradlew -q :app:dependencies --configuration debugCompileClasspath
./gradlew -q :app:dependencies --configuration debugRuntimeClasspath
./gradlew -q :app:dependencies --configuration releaseCompileClasspath
./gradlew -q :app:dependencies --configuration releaseRuntimeClasspath
# 举例
./gradlew -q :XXX:dependencies --configuration implementation
./gradlew -q :YYY:dependencies --configuration implementation
#解析库依赖
./gradlew -q :app:dependencyInsight --configuration debugCompileClasspath --dependency design
./gradlew -q :app:dependencyInsight --configuration debugRuntimeClasspath --dependency design
# 举例
./gradlew -q :XXX:dependencyInsight --configuration debugCompileClasspath --dependency XXX_1
./gradlew -q :YYY:dependencyInsight --configuration debugCompileClasspath --dependency YYY_2
以上命令行都自己试了一遍,implementation 表达无子节点依赖,debugXXXClasspath/releaseXXXClasspath 表达完整性节点依赖;
三. 执行
执行过程如下所示:
+--- com.squareup.leakcanary:leakcanary-android:1.5.4
| \--- com.squareup.leakcanary:leakcanary-analyzer:1.5.4
| +--- com.squareup.leakcanary:leakcanary-watcher:1.5.4
| \--- com.squareup.haha:haha:2.0.3
+--- com.squareup.leakcanary:leakcanary-analyzer:1.5.4 (*)
+--- com.squareup.leakcanary:leakcanary-watcher:1.5.4
+--- com.squareup.haha:haha:2.0.3
+--- com.android.support:appcompat-v7:28.0.0
| +--- com.android.support:support-annotations:28.0.0
| +--- com.android.support:support-compat:28.0.0
| | +--- com.android.support:support-annotations:28.0.0
| | +--- com.android.support:collections:28.0.0
| | | \--- com.android.support:support-annotations:28.0.0
| | +--- android.arch.lifecycle:runtime:1.1.1
| | | +--- android.arch.lifecycle:common:1.1.1
| | | | \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
| | | +--- android.arch.core:common:1.1.1
| | | | \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
| | | \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
| | \--- com.android.support:versionedparcelable:28.0.0
| | +--- com.android.support:support-annotations:28.0.0
| | \--- com.android.support:collections:28.0.0 (*)
| +--- com.android.support:collections:28.0.0 (*)
| +--- com.android.support:cursoradapter:28.0.0
| | \--- com.android.support:support-annotations:28.0.0
| +--- com.android.support:support-core-utils:28.0.0
| | +--- com.android.support:support-annotations:28.0.0
| | +--- com.android.support:support-compat:28.0.0 (*)
| | +--- com.android.support:documentfile:28.0.0
| | | \--- com.android.support:support-annotations:28.0.0
| | +--- com.android.support:loader:28.0.0
| | | +--- com.android.support:support-annotations:28.0.0
| | | +--- com.android.support:support-compat:28.0.0 (*)
| | | +--- android.arch.lifecycle:livedata:1.1.1
| | | | +--- android.arch.core:runtime:1.1.1
| | | | | +--- com.android.support:support-annotations:26.1.0 -> 28.0.0
| | | | | \--- android.arch.core:common:1.1.1 (*)
| | | | +--- android.arch.lifecycle:livedata-core:1.1.1
| | | | | +--- android.arch.lifecycle:common:1.1.1 (*)
| | | | | +--- android.arch.core:common:1.1.1 (*)
| | | | | \--- android.arch.core:runtime:1.1.1 (*)
| | | | \--- android.arch.core:common:1.1.1 (*)
| | | \--- android.arch.lifecycle:viewmodel:1.1.1
| | | \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
| | +--- com.android.support:localbroadcastmanager:28.0.0
| | | \--- com.android.support:support-annotations:28.0.0
| | \--- com.android.support:print:28.0.0
| | \--- com.android.support:support-annotations:28.0.0
| +--- com.android.support:support-fragment:28.0.0
| | +--- com.android.support:support-compat:28.0.0 (*)
| | +--- com.android.support:support-core-ui:28.0.0
| | | +--- com.android.support:support-annotations:28.0.0
| | | +--- com.android.support:support-compat:28.0.0 (*)
| | | +--- com.android.support:support-core-utils:28.0.0 (*)
| | | +--- com.android.support:customview:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | \--- com.android.support:support-compat:28.0.0 (*)
| | | +--- com.android.support:viewpager:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | +--- com.android.support:support-compat:28.0.0 (*)
| | | | \--- com.android.support:customview:28.0.0 (*)
| | | +--- com.android.support:coordinatorlayout:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | +--- com.android.support:support-compat:28.0.0 (*)
| | | | \--- com.android.support:customview:28.0.0 (*)
| | | +--- com.android.support:drawerlayout:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | +--- com.android.support:support-compat:28.0.0 (*)
| | | | \--- com.android.support:customview:28.0.0 (*)
| | | +--- com.android.support:slidingpanelayout:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | +--- com.android.support:support-compat:28.0.0 (*)
| | | | \--- com.android.support:customview:28.0.0 (*)
| | | +--- com.android.support:interpolator:28.0.0
| | | | \--- com.android.support:support-annotations:28.0.0
| | | +--- com.android.support:swiperefreshlayout:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | +--- com.android.support:support-compat:28.0.0 (*)
| | | | \--- com.android.support:interpolator:28.0.0 (*)
| | | +--- com.android.support:asynclayoutinflater:28.0.0
| | | | +--- com.android.support:support-annotations:28.0.0
| | | | \--- com.android.support:support-compat:28.0.0 (*)
| | | \--- com.android.support:cursoradapter:28.0.0 (*)
| | +--- com.android.support:support-core-utils:28.0.0 (*)
| | +--- com.android.support:support-annotations:28.0.0
| | +--- com.android.support:loader:28.0.0 (*)
| | \--- android.arch.lifecycle:viewmodel:1.1.1 (*)
| +--- com.android.support:support-vector-drawable:28.0.0
| | +--- com.android.support:support-annotations:28.0.0
| | \--- com.android.support:support-compat:28.0.0 (*)
| \--- com.android.support:animated-vector-drawable:28.0.0
| +--- com.android.support:support-vector-drawable:28.0.0 (*)
| \--- com.android.support:support-core-ui:28.0.0 (*)
+--- com.android.support:support-annotations:28.0.0
+--- com.android.support:support-compat:28.0.0 (*)
+--- com.android.support:collections:28.0.0 (*)
+--- android.arch.lifecycle:runtime:1.1.1 (*)
+--- android.arch.lifecycle:common:1.1.1 (*)
+--- android.arch.core:common:1.1.1 (*)
+--- com.android.support:versionedparcelable:28.0.0 (*)
+--- com.android.support:cursoradapter:28.0.0 (*)
+--- com.android.support:support-core-utils:28.0.0 (*)
+--- com.android.support:documentfile:28.0.0 (*)
+--- com.android.support:loader:28.0.0 (*)
+--- android.arch.lifecycle:livedata:1.1.1 (*)
+--- android.arch.core:runtime:1.1.1 (*)
+--- android.arch.lifecycle:livedata-core:1.1.1 (*)
+--- android.arch.lifecycle:viewmodel:1.1.1 (*)
+--- com.android.support:localbroadcastmanager:28.0.0 (*)
+--- com.android.support:print:28.0.0 (*)
+--- com.android.support:support-fragment:28.0.0 (*)
+--- com.android.support:support-core-ui:28.0.0 (*)
+--- com.android.support:customview:28.0.0 (*)
+--- com.android.support:viewpager:28.0.0 (*)
+--- com.android.support:coordinatorlayout:28.0.0 (*)
+--- com.android.support:drawerlayout:28.0.0 (*)
+--- com.android.support:slidingpanelayout:28.0.0 (*)
+--- com.android.support:interpolator:28.0.0 (*)
+--- com.android.support:swiperefreshlayout:28.0.0 (*)
+--- com.android.support:asynclayoutinflater:28.0.0 (*)
+--- com.android.support:support-vector-drawable:28.0.0 (*)
+--- com.android.support:animated-vector-drawable:28.0.0 (*)
\--- junit:junit:4.13-beta-3 (*)
(*) - dependencies omitted (listed previously)
四. 附录
添加一些本人使用的查看依赖命令:
# 项目依赖
./gradlew -q --warning-mode all androidDependencies > dependencies.txt
./gradlew -q :app:dependencies > dependencies.txt # 推荐
# 单项目 debugCompileClasspath,举例
./gradlew -q :app:dependencies --configuration debugCompileClasspath > dependencies.txt
# 多项目 debugCompileClasspath,举例
./gradlew -q :app:dependencies :library:base:dependencies :library:common:dependencies --configuration debugCompileClasspath > dependencies.txt
(完)