0
無法理解在Android Studio 3.0
中引入的最新的gradle
依賴性配置,即實現,api,編譯型和僅運行時。Gradle依賴關係配置:實現vs api vs runtimeonly vs compileonly
無法理解在Android Studio 3.0
中引入的最新的gradle
依賴性配置,即實現,api,編譯型和僅運行時。Gradle依賴關係配置:實現vs api vs runtimeonly vs compileonly
請參考鏈接:Android Studio 3.0 New Gradle Configuration可在Android開發者官方網站。
基於上面的鏈接提到的描述:
- 實施:當你的模塊配置的實現依賴,它讓搖籃知道該模塊不希望 泄漏依賴於其他模塊在編譯時。也就是說, 依賴關係僅在運行時纔可用於其他模塊。使用這種 依賴的配置,而不是API或編譯可能導致 顯著編譯時間的改進,因爲它減少的編譯系統需要重新編譯 項目的數量。例如,如果 實現依賴項更改其API,則Gradle將僅重新編譯該依賴項以及直接依賴它的模塊。大多數應用程序和 測試模塊都應使用此配置。
- API:當一個模塊包括API的依賴,它讓搖籃知道模塊要傳遞地出口是 依賴於其他模塊,以便它提供給他們在兩個 運行時和編譯時間。此配置的行爲與編譯 (現在不推薦使用)類似,您通常應該只在 庫模塊中使用此配置。這是因爲,如果api依賴項更改其外部API,則Gradle會在編譯時重新編譯所有可訪問該 依賴項的模塊。因此,擁有大量api 依賴關係可以顯着增加構建時間。除非您想要 將依賴項的API公開給單獨的測試模塊,否則應用程序模塊 應改爲使用實現依賴項。
- compileOnly:搖籃增加依賴於編譯類路徑中唯一(它不添加到生成輸出)。這是非常有用 當你創建一個Android庫模塊,你在編譯過程中所需要的 依賴,但它是可選的有出席 運行。也就是說,如果你使用這種配置,那麼你的庫 模塊必須包括一個運行狀況檢查 依賴是否可用,然後優雅地改變其行爲,如果它沒有提供它 仍然可以正常工作。這有助於減少最終APK的大小,因爲不會添加非關鍵的 臨時依賴關係。此配置的行爲與提供的相同(現在不推薦使用 )。
- runtimeonly:搖籃增加的依賴性在運行時僅生成輸出,以供使用。也就是說,它不會被添加到編譯 classpath中。此配置的行爲與apk相同(現在不推薦使用 )。