2017-06-12 63 views
0

我在Android gradle文件中看到了這些術語,它很混亂,我在創建即時應用程序時看到了這些術語。有人能解釋這些術語的使用:這些gradle條款的用途是什麼?

  1. api "com.android.support:appcompat-v7:$rootProject.supportLib"
  2. feature project(':main')
  3. application project(':installed')
  4. implementation project(":base")
  5. compile project(":base")

回答

0

我認爲,所有上市詞出現在一個dependencies塊。像名稱所示,項目依賴項在此塊中定義。

該塊爲每個註冊的配置提供了一種方法。這些方法是所列術語的第一部分(apifeature ...)。例如,您可以將第一項寫爲:

api("com.android.support:appcompat-v7:$rootProject.supportLib") 

Gradle基於的Groovy允許省略不必要的括號。

必須在configurations塊或Gradle插件中定義不同的配置。 compile配置由Java Plugin,apiimplementationJava Library Plugin定義。就個人而言,我不知道插件,它定義了featureapplication配置。不同的配置就可以解決不同的用途,作爲一個例子,這裏是apiimplementation之間的差:

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