我認爲,所有上市詞出現在一個dependencies
塊。像名稱所示,項目依賴項在此塊中定義。
該塊爲每個註冊的配置提供了一種方法。這些方法是所列術語的第一部分(api
,feature
...)。例如,您可以將第一項寫爲:
api("com.android.support:appcompat-v7:$rootProject.supportLib")
Gradle基於的Groovy允許省略不必要的括號。
必須在configurations
塊或Gradle插件中定義不同的配置。 compile
配置由Java Plugin,api
和implementation
由Java Library Plugin定義。就個人而言,我不知道插件,它定義了feature
或application
配置。不同的配置就可以解決不同的用途,作爲一個例子,這裏是api
和implementation
之間的差:
的api
配置應被用於聲明其由庫API導出的依賴關係,而implementation
配置應用於聲明組件內部的依賴關係。
您的術語的第二部分是定義爲here的依賴性定義。第一個術語定義了對外部模塊的依賴(在Maven倉庫中),所有其他術語定義了多項目構建中其他Gradle項目的依賴關係。
第一學期還有一個特殊的Groovy功能。 Groovy區分常規String
(通過'my string'
定義)和GString
(通過"my string"
定義)。 GStrings允許您通過"my string with $expression"
在字符串內部使用和評估Groovy表達式。在此術語中,評估rootProject.supportLib
以定義外部模塊依賴項的版本。作爲替代,您可以使用地圖符號而不是字符串符號來表示依賴項:
api group: 'com.android.support', name: 'appcompat-v7', version: rootProject.supportLib