android - 这些 gradle 术语对 android 有什么用?

标签 android android-studio gradle

我在 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 为每个注册的配置提供了一个方法。这些方法是列出术语的第一部分(apifeature ...)。例如,您可以将第一项写为:

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

    Gradle 所基于的 Groovy 允许省略不必要的括号。

    不同的配置必须在 configurations 中定义。 block 或通过 Gradle 插件。 compile配置由 Java Plugin 定义, apiimplementationJava Library Plugin .就我个人而言,我不知道定义 feature 的插件。或 application配置。不同的配置可以针对不同的用途来解决,例如这里是api的区别和 implementation :

    The api configuration should be used to declare dependencies which are exported by the library API, whereas the implementation 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/

    相关文章:

    java - 尝试更新到 SDK 工具 26.1.1 时出现问题

    Android Studio 无法在 Windows 10 上检测到 Android 设备

    java - 在新的库/jar文件中添加外部库

    android - Gradle 没有在 Android Studio 中构建简单的测试

    php - 从PHP脚本exec()执行时,无法从gradle中获取输出

    gradle - 配置中的all * .exclude和all.exclude有什么区别

    java - Android 内的 TabActivity 和导航

    android - 当我更改元素的 id 时,通过 ConstraintSet 以编程方式添加障碍不起作用?

    android - 即使在设置新适配器后,ViewPager 仍保留 fragment 的实例

    java - 注释回收器查看 ItemClick