当前位置: 首页 > news >正文

申请自己的网站手机app软件制作工具

申请自己的网站,手机app软件制作工具,wordpress分享型主题模板下载,比亚迪新能源汽车4s店1. 前言 前几篇文章,我们对Gradle中的基本知识,包括Gradle项目结构、Gradle Wrapper、GradleUserHome、Groovy基础语法、Groovy语法概念、Groovy闭包等知识点,这篇文章我们接着来介绍Gradle构建过程中的知识点。 2. Project : Gradle中构建…

1. 前言

前几篇文章,我们对Gradle中的基本知识,包括Gradle项目结构、Gradle WrapperGradleUserHomeGroovy基础语法、Groovy语法概念、Groovy闭包等知识点,这篇文章我们接着来介绍Gradle构建过程中的知识点。

2. Project : Gradle中构建过程的基本单位

在Gradle构建工具中,Project是一个核心概念,它代表了一个独立的构建单元,对应到项目结构中的一个模块或者子模块(每个build.gradle文件代表一个Project)。

在Gradle的构建模型中,一个Project可以包含多个子Project,形成一个树状结构。根Project用于统筹管理所有的子Project,而每个子Project都对应一个输出,例如APK文件、aar文件或jar文件等。

一个build(构建过程)由一个或多个project组成。每个project可以有多个task。

3. Task : Gradle中最小的构建单元

Task字面翻译就是任务的意思,是Gradle中最小的构建单元,每个Task代表构建过程中的一项具体工作或操作,比如编译Java源代码、打包JAR文件、运行测试、生成文档等,每一个Task都属于一个Project。

你可以将Gradle构建过程想象成一系列相互依赖的任务集合,这些任务按照特定的顺序和条件执行,共同完成构建流程。

在Gradle脚本(通常是build.gradle或settings.gradle.kts等文件)中,通过task关键字或者tasks.create()方法来定义一个Task。定义时可以为任务指定名称、组(group)、描述(description)以及闭包(closure)或动作(action),闭包内包含任务实际执行的操作逻辑。

// 定义一个简单的Task并设置其组和描述
task helloTask (group: 'example', description: 'Prints a hello message') {doLast {println 'Hello from Gradle Task!'}
}

在build.gradle中,一切无主的方法,都回去Project上查找。
如果你好奇task这个方法存在于哪里的话,点击task,会直接跳转到Project.class的源码去。

在这里插入图片描述
你会发现,所谓的这么一个task,定义的API,本质上就是Project的一个方法而已。

gradle中一个很重要的feature是,gradle中的task是活的,而不是死的。
task可以在配置阶段动态创建。

4. Lifecycle : Gradle的生命周期

4.1 任务图

Gradle 会在执行任何任务之前构建任务图。
在构建中的所有项目中,任务形成有向无环图 (DAG)。
pFY4HKO.png

4.2 构建阶段

Gradle 构建工具的生命周期可以细分为三个主要阶段:
在这里插入图片描述

  • 初始化 (Initialization)

    • 检测settings.gradle(.kts)文件是否存在
    • 根据settings.gradle(.kts)文件创建Settings对象 (Settings实例和settings .gradle(.kts)文件相对应)
    • 根据Settings对象确定哪些子项目将参与构建过程
    • 为每个项目创建对应的 Project 实例 (build.gradle(.kts)和Project相对应),并建立整个多项目构建的结构
  • 配置 (Configuration)

    • 进入配置阶段后,Gradle会根据每个Project加载其目录下对应的build.gradle(.kts)
    • Gradle 会加载每个项目中的 build.gradlebuild.gradle.kts 文件,根据其中的脚本定义来配置各个项目。
    • 在此阶段,Gradle 解析所有任务、依赖关系以及自定义插件等设置,并创建相应的Task对象。
    • 用户可以通过扩展点如pluginsdependenciestasks块来自定义构建行为。
  • 执行 (Execution)

    • Gradle 按照任务间的依赖关系来调度执行任务,确保前置任务成功完成后才会执行后续依赖于它的任务。
    • 执行阶段包括编译源代码、打包资源、运行测试、生成工件(如JAR、WAR文件)等操作。
    • 任务的执行可以并行进行。

Gradle 的强大之处在于它允许开发者在上述每个阶段插入定制的行为,例如通过添加钩子函数(如beforeSettingsprojectsEvaluated等)来扩展其功能。此外,在执行阶段,Gradle 使用增量构建技术来提高构建效率,仅处理自上次构建以来发生变化的部分。

在Gradle中,创建一个Settings实例是构建生命周期的第一步。Settings实例负责确定哪些项目应该包含在构建中,并为每个项目创建一个Project实例。这通常是通过解析settings.gradle或settings.gradle.kts文件来完成的,这些文件位于项目的根目录下。

5. Hook : Gradle中的钩子函数

Gradle中的Hook函数(也称为生命周期回调)允许你在构建生命周期的不同阶段插入自定义逻辑。这些Hook函数允许你扩展和定制Gradle的行为,以满足特定的构建需求。以下是一些Gradle中常用的Hook函数:

  • 构建初始阶段(Initialization
    • settingsEvaluated : 完成项目的配置阶段之后调用 (只能定义在 seting.gradleinit.gradle 脚本中)
    • projectsLoaded : 所有项目加载之后调用 (只能定义在 setting.gradleinit.gradle 脚本中)
  • 配置阶段(Configuration
    • beforeProject : 每个项目完成配置之前调用 (只能定义在 setting.gradleinit.gradle 脚本中)
    • afterProject : 每个项目完成配置之后调用
    • projectEvaluated : 所有项目全部完成配置之后调用
    • afterEvaluate : 整个配置阶段完成后调用
    • taskGraph.whenReady : 全部任务图已经构建完成可以就绪后调用
  • 执行阶段(Execution
    • taskGraph.beforeTask : 执行每一个任务之前调用
    • taskGraph.afterTask : 每一个任务执行完成之后调用
    • buildFinished : 整个构建全部结束后调用

6. Gradle系列文章

Android Gradle 开发与应用 (一) : Gradle基础-CSDN博客
Android Gradle开发与应用 (二) : Groovy基础语法-CSDN博客
Android Gradle开发与应用 (三) : Groovy语法概念与闭包-CSDN博客
Android Gradle开发与应用 (四) : Gradle构建与生命周期-CSDN博客
基于Gradle 8.2,创建Gradle插件-CSDN博客
Android Gradle插件开发_实现自动复制文件插件

http://www.yayakq.cn/news/316658/

相关文章:

  • 移动网站开发课程设计百度推广客户端
  • 哪里有制作网站服务seo站长查询
  • 介绍自己的家乡遵义网站建设免费网站开发
  • 太极馆如何做网站旅游网站开发需求文档模板下载
  • 南宁网站网站建设打开这个你会感谢我的网站
  • 扬州开发区建设局网站公司网页设计实例教程
  • 国家建设部网站2018年php网站建设案例教程
  • 石家庄网站建设公司wsjzwordpress模板怎么添加菜单
  • 怎么用ftp修改网站图片网页版登录入口
  • wordpress博客站搭建绍兴高端网站开发
  • 北京北站前端培训机构排名
  • 电商网站开发详细流程企业网站建设制作公司哪家好
  • 企业网站建设可以分为几个层次wordpress app 生成
  • 为什么实验楼网站上做实验这么卡网络公司推广方案
  • 公司网站模板图片装修体验馆app
  • 优化网站建设seo自己网站上做支付宝怎么收费的
  • 做图软件ps下载网站网络规划设计师教程第二版电子书
  • 气球网站建设除了Joomla用什么做网站好
  • 极速微网站建设cms西安百度竞价托管公司
  • 哪个网站可以做自己的网页德芙巧克力网站开发方案
  • 做soho建立网站免费制作视频的软件手机版
  • 网站建设公司线下推广优秀产品设计案例分析
  • 广州做网站的哪家好公司网站自己可做吗
  • 龙岗区建设工程交易服务网seo蜘蛛池
  • 网站由哪三部分组成促进房地产市场健康发展
  • ps手机网站制作上海网站建设专家
  • 扁平网站欣赏wordpress静态分页
  • 免费制作自己的微网站吗临沂市建设局的网站
  • 怎么用ps做网站上的产品图怎么注册公司微信号
  • 东莞服饰网站建设哪家好美工网站设计收费