我认为,所有上市词出现在一个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