前言
在前两篇针对Gradle
的介绍之后,本次主要介绍Gradle
的DSL
指令。
本篇主要介绍 allprojects{},artifacts{},publishing{}
指令等的含义和功能。
Gradle (zinyan.com)。应该能够给你一点参考价值。
基础属性
Gradle
在构建项目的时候它需要执行我们配置的各种脚本(Task任务),当脚本在执行的时候,Gradle
会配置特定类型的对象。主要有三个实例对象:
- Project 实例对象:构建脚本进行初始化的对象。(build.gradle)
- Gradle 实例对象: 初始化脚本的时候,进行实例化的对象。
- Settings 实例对象: 设置脚本对象的实例对象(settings.gradle)
这几个对象的实例情况,我们可以在各种脚本文档中进行直接使用(build.gradle 文档里面)。
allprojects{}
这个主要配置整个项目和子项目,这个主要在多个子projects的父脚本(build.gradle)中配置。(这个关系不太懂的可以看文档: https://zinyan.com/?p=248。里面有详细介绍。)
buildscript{}
为此项目配置生成脚本类路径。buildscript
默认是指向Project
对象。
我们在Android Studio
的Project
目录下的build.gradle
文件中的这个配置。就是针对的整个项目的配置,而每个module
的配置依赖 allprojects
里面的配置。
repositories{}
这个里面配置项目的存储库。例如配置mavne的地址等。
dependencies{}
配置这个Project对象的依赖项。就是配置我们项目需要依赖的各种远程maven库的地址。
artifacts{}
为此项目配置已发布的项目。
configurations{}
配置项目的依赖项配置。
sourceSets{}
配置项目的source 集。
subprojects{}
配置项目的子项目。
publishing{}
扩展发布插件的配置项,例如我们将aar编译后使用maven发布。就是通过该项,扩展发布的结果。
额外属性
我们在Gradle
中。所有的额外的属性都必须通过:ext 命名空间进行定义。
而上面的配置通常会放在最外层的build.gradle
中。我们在module
里面的build.gradle
使用的话,就可以通过例如:rootProject.ext.buildToolsVersion
直接使用。
Project
财产 | 描述 |
---|---|
allprojects | 包含此项目及其子项目的集。 |
ant | 对于此项目。您可以在构建文件中使用它来执行 ant 任务。请参阅下面的示例。AntBuilder |
artifacts | 返回一个处理程序,用于将项目生成的项目分配给配置。 |
buildDir | 此项目的生成目录。生成目录是生成所有项目的目录。生成目录的默认值为*projectDir*/build |
buildFile | 此项目的生成脚本。 |
buildscript | 此项目的生成脚本处理程序。可以使用此处理程序查询有关此项目的生成脚本的详细信息,并管理用于编译和执行项目的生成脚本的类路径。 |
childProjects | 这个项目的直接子项。 |
configurations | 此项目的配置。 |
convention | 荒废的本项目的公约 。 |
defaultTasks | 此项目的默认任务的名称。如果在开始生成时未提供任何任务名称,则使用这些名称。 |
dependencies | 此项目的依赖项处理程序。返回的依赖项处理程序实例可用于添加新的依赖项。对于访问已声明的依赖项,可以使用这些配置。 |
dependencyLocking | 提供对配置依赖项锁定的访问权限 |
description | 此项目的说明(如果有)。 |
extensions | 允许向项目添加 DSL 扩展。对插件作者很有用。 |
gradle | 此项目所属的 Gradle 调用。 |
group | 此项目的组。Gradle 始终使用组的值。该组默认为以点作为分隔符的路径。toString() |
logger | 此项目的记录器。您可以在构建文件中使用它来写入日志消息。 |
logging | 日志记录管理器, 可用于接收日志记录并控制此项目生成脚本的标准输出/错误捕获。默认情况下,System.out 在 QUIET 日志级别重定向到 Gradle 日志记录系统,而 System.err 在 ERROR 日志级别重定向。 |
name | 此项目的名称。项目名称在项目层次结构中不一定是唯一的。应使用 Project.getPath() 方法作为项目的唯一标识符。 |
normalization | 提供对配置输入规范化的访问。 |
parent | 此项目的父项目(如果有)。 |
path | 此项目的路径。路径是项目的完全限定名称。 |
pluginManager | 此插件感知对象的插件管理器。 |
plugins | 已应用于此对象的插件的容器。 |
project | 返回此项目。此方法在生成文件中很有用,用于显式访问项目属性和方法。例如,使用可以比使用 更好地表达您的意图。此方法还允许您从可能隐藏属性的作用域(例如,从方法或闭包中)访问项目属性。project.name``name |
projectDir | 包含项目生成文件的目录。 |
properties | 此项目的属性。有关可用于项目的属性的详细信息,请参阅此处。 |
repositories | 返回一个处理程序来创建存储库,这些存储库用于检索依赖项和上载项目生成的项目。 |
resources | 提供对特定于资源的实用工具方法的访问,例如,创建各种资源的工厂方法。 |
rootDir | 此项目的根目录。根目录是根项目的项目目录。 |
rootProject | 此项目所属层次结构的根项目。对于单项目生成,此方法返回此项目。 |
state | 此项目的评估状态。您可以使用它来访问有关此项目评估的信息,例如它是否失败。 |
status | 此项目的状态。Gradle 始终使用状态的值。状态缺省为 。toString()``release |
subprojects | 包含此项目的子项目的集。 |
tasks | 此项目的任务。 |
version | 此项目的版本。Gradle 始终使用版本的值。版本缺省为 。toString()``unspecified |
参考
Android Gradle 基本组件:Task,build.gradle等文件介绍 (zinyan.com)
Android Gradle 知识介绍 (zinyan.com)
评论区