我在 android gradle 文件中看到了这些术语,我在创建即时应用程序时看到了这些术语,这让我很困惑。有人可以解释这些术语的用法:
api "com.android.support:appcompat-v7:$rootProject.supportLib"
feature project(':main')
application project(':installed')
implementation project(":base")
compile project(":base")
最佳答案
我假设所有列出的术语都出现在 dependencies
堵塞。如名称所示,项目依赖项在此 block 中定义。
该 block 为每个注册的配置提供了一个方法。这些方法是列出术语的第一部分(api
、feature
...)。例如,您可以将第一项写为:
api("com.android.support:appcompat-v7:$rootProject.supportLib")
Gradle 所基于的 Groovy 允许省略不必要的括号。
不同的配置必须在
configurations
中定义。 block 或通过 Gradle 插件。 compile
配置由 Java Plugin 定义, api
和 implementation
由 Java Library Plugin .就我个人而言,我不知道定义 feature
的插件。或 application
配置。不同的配置可以针对不同的用途来解决,例如这里是api
的区别和 implementation
:The
api
configuration should be used to declare dependencies which are exported by the library API, whereas theimplementation
configuration should be used to declare dependencies which are internal to the component.
您的术语的第二部分是依赖定义,定义为 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
关于android - 这些 gradle 术语对 android 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497678/