Android Gradle 插件Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )相关的知识,希望对你有一定的参考价值。
文章目录
Android Plugin DSL Reference 参考文档 : https://google.github.io/android-gradle-dsl/2.3/
一、settings.gradle 映射为 Settings 类
根目录下的 settings.gradle 脚本 , 编译时被映射为 Settings 类 ;
settings 中可以直接调用 Settings 接口中的方法 , 查看 include 方法 , 发现该 include 方法定义在 Settings 接口中 ;
@HasInternalProtocol
public interface Settings extends PluginAware, ExtensionAware
/**
* <p>设置文件的默认名称。</p>
*/
String DEFAULT_SETTINGS_FILE = "settings.gradle";
/**
* <p>将给定的项目添加到生成中。
* 提供的列表中的每个路径都被视为要添加到生成中的项目的路径。
* 请注意,这些路径不是文件路径,而是指定新项目在项目层次结构中的位置。
* 因此,提供的路径必须使用“:”字符作为分隔符(而不是“/”)。</p>
*
* <p>提供的路径的最后一个元素用作项目名称。
* 提供的路径将转换为相对于根项目目录的项目目录。
* 包含项目后,可以通过更改“projectDir”属性来更改项目目录 (see @link ProjectDescriptor#setProjectDir(File))</p>
*
* <p>例如,路径@code a:b添加了一个带有路径@code:a:b、名称@code b和项目目录@code$rootDir/a/b的项目。
* 它还添加了路径为@code:a、名称为@code a、项目目录为@code$rootDir/a的项目,如果它还不存在的话。</p>
*
* <p>使用项目路径的一些常见示例如下:</p>
*
* <pre class='autoTestedSettings'>
* // 包括两个项目,“foo”和“foo:bar”
* // 通过将“:”替换为“/”来推断目录
* include 'foo:bar'
*
* // 包括一个项目,其项目目录与逻辑项目路径不匹配
* include 'baz'
* project(':baz').projectDir = file('foo/baz')
*
* // 包括许多其项目目录与逻辑项目路径不匹配的项目
* file('subprojects').eachDir dir ->
* include dir.name
* project(":$dir.name").projectDir = dir
*
* </pre>
*
* @param projectPaths 要添加的项目。
*/
void include(String... projectPaths);
二、build.gradle 映射为 Project 类
Module 模块下的 build.gradle 会被映射为 Project 类 , 因此在 build.gradle 中可以直接调用 Project 中的方法 ;
查看 build.gradle 中的 dependencies 方法源码 , 该方法定义在 Project.java 中 ;
@HasInternalProtocol
public interface Project extends Comparable<Project>, ExtensionAware, PluginAware
/**
* 默认的项目生成文件名。
*/
String DEFAULT_BUILD_FILE = "build.gradle";
/**
* <p>配置此项目的依赖项。
*
* <p>此方法对该项目的@link DependencyHandler执行给定的闭包。这个 @link
* DependencyHandler 作为闭包的委托传递给闭包。
*
* <h3>Examples:</h3>
* See docs for @link DependencyHandler
*
* @param configureClosure 用于配置依赖项的闭包。
*/
void dependencies(Closure configureClosure);
以上是关于Android Gradle 插件Gradle 映射文件 ( settings.gradle 映射为 Settings 类 | build.gradle 映射为 Project 类 )的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
Android Gradle 插件自定义 Gradle 插件模块 ② ( 在模块中定义插件 | 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 )