侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 274 篇文章
  • 累计创建 55 个标签
  • 累计收到 74 条评论

Gradle 里面的函数介绍,例如allprojects ,publishing等命令含义

Z同学
2022-02-17 / 0 评论 / 3 点赞 / 380 阅读 / 2,641 字
温馨提示:
本文最后更新于 2022-02-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

在前两篇针对Gradle的介绍之后,本次主要介绍GradleDSL 指令。

本篇主要介绍 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。里面有详细介绍。)

image-20220217144130438

buildscript{}

为此项目配置生成脚本类路径。buildscript 默认是指向Project对象。

我们在Android StudioProject目录下的build.gradle 文件中的这个配置。就是针对的整个项目的配置,而每个module的配置依赖 allprojects里面的配置。

image-20220217143527971

repositories{}

这个里面配置项目的存储库。例如配置mavne的地址等。

image-20220217144049240

dependencies{}

配置这个Project对象的依赖项。就是配置我们项目需要依赖的各种远程maven库的地址。

image-20220217144106168

artifacts{}

为此项目配置已发布的项目。

configurations{}

配置项目的依赖项配置。

sourceSets{}

配置项目的source 集。

subprojects{}

配置项目的子项目。

publishing{}

扩展发布插件的配置项,例如我们将aar编译后使用maven发布。就是通过该项,扩展发布的结果。

image-20220217144734550

额外属性

我们在Gradle中。所有的额外的属性都必须通过:ext 命名空间进行定义。

image-20220217145134398

而上面的配置通常会放在最外层的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)

Android Studio 使用 maven-publish 进行多渠道aar 打包 (zinyan.com)

Gradle DSL Version 7.2

3

评论区