快速檢視Gradle專案包依賴情況
Gradle專案中,匯入依賴包和並對其管理是開發人員繞不開的事情,在匯入的過程中,一不小心就會遇到新匯入的依賴庫和原有的類庫衝突的問題,我在之前的一篇文章遇到異常Multiple dex files define時裡提供瞭解決方法。本文對如何定位依賴衝突這個環節提供更多的方法
方式1
./gradlew 模組名:dependencies
cmd 到模組檔案的上級目錄下
gradle 模組名:dependencies
1
這個命令會打印出該模組下的所有第三方類庫的依賴情況,有多種展示情況,complie編譯時的,Runtime執行時(打到APK包時)的,debug下,release下。
如下展示的是debugCompileClasspath即debug編譯時的引包情況:
debugCompileClasspath - Resolved configuration for compilation for variant: debug
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.31
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.2.31
| \--- org.jetbrains:annotations:13.0
+--- com.android.support:appcompat-v7:27.1.1
| +--- com.android.support:support-annotations:27.1.1
| +--- com.android.support:support-core-utils:27.1.1
| | +--- com.android.support:support-annotations:27.1.1
| | \--- com.android.support:support-compat:27.1.1
| | +--- com.android.support:support-annotations:27.1.1
| | \--- android.arch.lifecycle:runtime:1.1.0
| | +--- android.arch.lifecycle:common:1.1.0
| | \--- android.arch.core:common:1.1.0
| +--- com.android.support:support-fragment:27.1.1
| | +--- com.android.support:support-compat:27.1.1 (*)
| | +--- com.android.support:support-core-ui:27.1.1
| | | +--- com.android.support:support-annotations:27.1.1
| | | +--- com.android.support:support-compat:27.1.1 (*)
| | | \--- com.android.support:support-core-utils:27.1.1 (*)
| | +--- com.android.support:support-core-utils:27.1.1 (*)
| | +--- com.android.support:support-annotations:27.1.1
| | +--- android.arch.lifecycle:livedata-core:1.1.0
| | | +--- android.arch.lifecycle:common:1.1.0
| | | +--- android.arch.core:common:1.1.0
| | | \--- android.arch.core:runtime:1.1.0
| | | \--- android.arch.core:common:1.1.0
| | \--- android.arch.lifecycle:viewmodel:1.1.0
| +--- com.android.support:support-vector-drawable:27.1.1
| | +--- com.android.support:support-annotations:27.1.1
| | \--- com.android.support:support-compat:27.1.1 (*)
| \--- com.android.support:animated-vector-drawable:27.1.1
| +--- com.android.support:support-vector-drawable:27.1.1 (*)
| \--- com.android.support:support-core-ui:27.1.1 (*)
\--- com.android.support.constraint:constraint-layout:1.0.2
\--- com.android.support.constraint:constraint-layout-solver:1.0.2
分層展示,不僅展示了該模組下每個類庫的名稱、版本號,還展示了各類庫裡所需依賴的類庫。
方式2
如果你嫌命令列麻煩,還有滑鼠操作的方式
滑鼠雙擊即可執行
其實方式一的命令列執行的就是截圖裡dependencies任務。
Gradle專案構建的過程就是依次執行完所有任務的過程。
方式3
如果你嫌在命令列視窗展示觀看不友好,這裡還有一種體驗更好的方式。
輸入下面命令列:
./gradlew build --scan
cmd 到檔案目錄下
gradle build --scan
1
出現如下:
Publishing a build scan to scans.gradle.com requires accepting the Terms of Service defined at https://scans.gradle.com/terms-of-service. Do you accept these terms? [yes, no]
1
輸入yes同意,將會出現一個網頁地址,登入該網址。
該網頁還提供衝突提示,列出了引用了此類庫的類庫,效果如下
小結
方式1和方式2實際上是同一種方法,方式3藉助了Gradle官網為我們提供了視覺上更友好的檢視包依賴。當編譯出現包依賴衝突的問題時,使用這種方式能極大的提高我們快速定位問題來源的效率。
參考資料
Get started with build scans
---------------------
作者:sugaryaruan
來源:CSDN
原文:https://blog.csdn.net/sugaryaruan/article/details/79905339?utm_source=copy
版權宣告:本文為博主原創文章,轉載請附上博文連結!