1. 程式人生 > >快速檢視Gradle專案包依賴情況

快速檢視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
如果你嫌命令列麻煩,還有滑鼠操作的方式

æ¹å¼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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!